version: "3" vars: APP_IMAGE: application CLI_IMAGE: cli NGINX_IMAGE: nginx APP_UID: 1000 APP_GID: 1000 USER_ENV: ={{.APP_UID}} APP_GID={{.APP_GID}} BUILD_ARG: "--build-arg APP_UID={{.APP_UID}} --build-arg APP_GID={{.APP_GID}} --build-arg $GITHUB_PROJECT_NAME=$GITHUB_PROJECT_NAME" tasks: docker-compose: internal: true cmd: APP_UID{{.USER_ENV}} docker compose {{.COMPOSE}} docker-run: aliases: [ run ] silent: true cmds: - task: docker-compose vars: COMPOSE: run --rm --no-deps development {{.COMMAND}} docker-pull: desc: Загрузить образы aliases: [ pull ] cmds: - task: docker-compose vars: COMPOSE: pull docker-build: desc: Собрать образы aliases: [ build ] cmds: - task: docker-compose vars: COMPOSE: build {{.BUILD_ARG}} docker-up: desc: Запустить контейнеры aliases: [ up ] cmds: - task: docker-compose vars: COMPOSE: up -d docker-down: desc: Остановить контейнеры aliases: [ down ] cmds: - task: docker-compose vars: COMPOSE: down docker-restart: desc: Перезапустить все контейнеры aliases: [ restart ] cmds: - task: down - task: up docker-clean: desc: Удалить volumes и кэш laravel aliases: [ clean ] cmds: - task: optimize-clear - cmd: APP_UID{{.USER_ENV}} docker compose down -v --remove-orphans docker-ps: desc: Список запущенных контейнеров aliases: [ ps ] cmds: - task: docker-compose vars: COMPOSE: ps docker-logs: desc: Просмотр лога контейнеров aliases: [ logs ] cmds: - task: docker-compose vars: COMPOSE: logs status: desc: Статус приложения internal: true cmds: - echo "Application is ready!" - echo "Backend http://laravel.localhost" - echo "Traefik http://127.0.0.1:8888" silent: true preconditions: - sh: APP_UID{{.USER_ENV}} docker compose exec application php artisan octane:status msg: 'Application container or octane is not running' build-production-*: desc: Build production vars: TAG: '{{index .MATCH 0}}' cmds: - docker build {{.BUILD_ARG}} --platform linux/x86_64 --pull -f .docker/php/Dockerfile --target php -t ghcr.io/$GITHUB_PROJECT_NAME/{{.APP_IMAGE}}:{{.TAG}} . - docker build {{.BUILD_ARG}} --platform linux/x86_64 --pull -f .docker/php/Dockerfile --target cli -t ghcr.io/$GITHUB_PROJECT_NAME/{{.CLI_IMAGE}}:{{.TAG}} . - docker build {{.BUILD_ARG}} --platform linux/x86_64 --pull -f .docker/nginx/Dockerfile -t ghcr.io/$GITHUB_PROJECT_NAME/{{.NGINX_IMAGE}}:{{.TAG}} . push-production-*: desc: Push production vars: TAG: '{{index .MATCH 0}}' cmds: - docker push ghcr.io/$GITHUB_PROJECT_NAME/{{.APP_IMAGE}}:{{.TAG}} - docker push ghcr.io/$GITHUB_PROJECT_NAME/{{.CLI_IMAGE}}:{{.TAG}} - docker push ghcr.io/$GITHUB_PROJECT_NAME/{{.NGINX_IMAGE}}:{{.TAG}} build-and-push-production-*: desc: Build & Push production vars: TAG: '{{index .MATCH 0}}' cmds: - task: build-production-{{.TAG}} - task: push-production-{{.TAG}}