Prechádzať zdrojové kódy

Added Makefile, added docker-compose.debug.yml, changed docker-compose.yml

Alexander Musikhin 11 mesiacov pred
rodič
commit
957a83f1fb
3 zmenil súbory, kde vykonal 172 pridanie a 0 odobranie
  1. 169 0
      Makefile
  2. 1 0
      docker-compose.debug.yml
  3. 2 0
      docker-compose.yml

+ 169 - 0
Makefile

@@ -0,0 +1,169 @@
+# Environment section  -----------------------------------------------------
+
+ifneq (,$(wildcard ./.env))
+    include .env
+    $(eval export $(shell sed -ne 's/ *#.*$$//; /./ s/=.*$$// p' .env))
+        # Create frontend/.env file
+#    $(shell export WS_PORT=$(WS_PORT) ;\
+#            export WEB_PORT=$(WEB_PORT) ;\
+#            export APP_ADDR=$(APP_ADDR) ;\
+#     awk '!/^ *#/ && NF' .env | grep FRONTEND_ | sed 's/FRONTEND_//' | envsubst > frontend/.env)
+endif
+
+appName = ${COMPOSE_PROJECT_NAME}
+ifeq ($(appName),)
+    appName = strprfcrm
+endif
+args = $(filter-out $@,$(MAKECMDGOALS))
+
+# Docker section -----------------------------------------------------
+
+# uid and group of current user
+$(eval export UID=$(shell id -u))
+$(eval export GID=$(shell id -g))
+
+ifneq ("$(wildcard docker-compose.local.yml)","")
+    compose = docker compose -f docker-compose.yml -f docker-compose.local.yml -p $(appName)
+    compose-debug = docker compose -f docker-compose.yml -f docker-compose.local.yml -f docker-compose.debug.yml -p $(appName)
+else
+    compose = docker compose -f docker-compose.yml -p $(appName)
+    compose-debug = docker compose -f docker-compose.yml -f docker-compose.debug.yml -p $(appName)
+endif
+get_container_name = $(shell docker inspect -f '{{.Name}}' $(shell $(compose) ps -q $(1)) | sed -e 's~^/~~' | tr -d ' ')
+message = @echo "\n========================================\n$(1)\n========================================\n"
+
+#
+# Containers
+#
+application = docker exec -it $(call get_container_name, "app")
+queue = docker exec -it $(call get_container_name, "app-queue")
+websocket = docker exec -it $(call get_container_name, "websocket")
+webserver = docker exec -it $(call get_container_name, "webserver")
+mysql = docker exec -it $(call get_container_name, "db")
+
+# Commands section -----------------------------------------------------
+
+.DEFAULT_GOAL := help
+.PHONY: help
+
+help:
+        @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
+        | sed -n 's/^\(.*\): \(.*\)##\(.*\)/\1 - \3/p' \
+        | column -t -s ' '
+
+install: up-build composer-install db-migrate db-seed frontend-build ## Установка приложения
+	$(call message,"The application was successfully installed!")
+
+upgrade: stop pull up-rebuild composer-install db-migrate frontend-build ## Обновление приложения
+	$(call message,"The application was successfully updated!")
+
+full-upgrade: stop pull up-rebuild composer-install db-migrate-refresh frontend-build ## Обновление приложения и пересоздание БД
+	$(call message,"The application was successfully updated! Database rebuilded!")
+
+up: ## Запуск проекта
+	$(compose) up -d
+
+up-debug: ## Запуск проекта в режиме отладки
+	$(compose-debug) up -d
+
+remove:
+	$(compose) rm -f -s -v
+
+pull:
+	$(compose) pull
+
+update: pull up
+
+stop:
+	$(compose) stop
+
+rm:
+	$(compose) rm
+
+up-build:
+	$(compose) up --build -d
+
+up-rebuild: ## Перестройка проекта
+	$(compose) up --build --force-recreate -d
+
+ps: ## Список запущенных контейнеров
+	$(compose) ps
+
+#icons: ## Перестроить иконки
+#        $(webserver) sh -c 'apk add yarn && cd /var/frontend && yarn run icons'
+#
+#frontend-run: ## Перестроить фронт приложения
+#        $(webserver) sh -c 'apk add yarn && cd /var/frontend && yarn run build'
+#
+#frontend-build: ## Перестроить фронт приложения
+#        $(webserver) sh -c 'apk add yarn && cd /var/frontend && yarn install && yarn run build'
+
+composer: ## Запуск composer
+	$(application) composer $(args)
+
+composer-require: ## Добавление пакета
+	$(application) composer require $(args)
+
+composer-install: ## Установка пакетов
+	$(application) composer install
+
+composer-regenerate: ## Перестройка пакетов
+	$(application) composer dump-autoload
+
+db-migrate: ## Применение миграций
+	$(application) php artisan migrate
+
+db-seed: ## Запуск сидеров
+	$(application) php artisan db:seed
+
+db-rollback: ## Откат последней миграций
+	$(application) php artisan migrate:rollback
+
+db-migrate-refresh: ## Применение миграций с очисткой БД
+	$(application) php artisan migrate:fresh --seed
+
+application: ## Консоль приложения
+	$(application) bash
+
+pa: ## Консоль приложения
+	$(application) php artisan ${args}
+
+routes: ## Список маршрутов
+	application-artisan route:list ${args}
+
+application-log: ## Лог выполнения задач
+	$(compose) logs app -f
+
+queue: ## Консоль выполненных задач
+	$(queue) bash
+
+queue-run: ## Запуск текущих задач
+	$(compose) run --rm app-queue php artisan queue:work --once
+
+queue-run-debug:
+	$(compose-debug) run --rm app-queue php artisan queue:work --once
+
+queue-log: ## Лог приложения
+	$(compose) logs app-queue -f
+
+websocket: ## Консоль приложения websocket
+	$(websocket) bash
+
+websocket-log: ## Лог приложения websocket
+	$(compose) logs websocket -f
+
+webserver: ## Консоль приложения webserver
+	$(webserver) sh
+
+webserver-log: ## Лог приложения webserver
+	$(compose) logs webserver -f
+
+mysql: ## Консоль приложения mysql
+	$(mysql) bash
+
+log: ## Лог контейнеров
+	$(compose) logs -f
+
+# Remove error message about lacking rules for targets' parameters
+%:
+        @:

+ 1 - 0
docker-compose.debug.yml

@@ -0,0 +1 @@
+# override debug here

+ 2 - 0
docker-compose.yml

@@ -87,6 +87,8 @@ services:
     volumes:
       - ./docker/mysql/my.cnf:/etc/my.cnf
       - ./docker/database:/var/lib/mysql
+    ports:
+        - 33061:3306
     networks:
       - cpa-network