From a5ab29460826e008c39f777026e81c2b44d5e799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=D1=81=20=D0=A1=D1=83=D0=BB=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Tue, 8 Sep 2026 15:02:33 +0300 Subject: [PATCH] =?UTF-8?q?ci(deploy):=20compose=20=D0=B8=D0=B7=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=84=D1=80=D0=B0-=D1=80=D0=B5=D0=BF=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=BF=D1=80=D1=8F=D0=BC=D1=83=D1=8E=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20-f=20(=D1=87=D0=B8=D1=81=D1=82=D1=8B=D0=B9=20git?= =?UTF-8?q?=20status=20=D0=BD=D0=B0=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Шаг 0.14 (доработка): без cp в /opt/crm — docker compose -f /opt/crm-infra/docker-compose.prod.yml --project-directory /opt/crm --- .github/workflows/deploy.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d7f22f7..0627a5e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -77,6 +77,8 @@ jobs: # 2. Прод-compose — из приватного инфра-репозитория (единственный источник правды). # Раньше: git stash кастомизаций + копия из бэкапа вне репо (дрейф, шаг 0.14). + # Файл используется напрямую с -f (без копирования в /opt/crm) — + # git status основного репо на сервере остаётся чистым. if [ ! -d /opt/crm-infra/.git ]; then GIT_SSH_COMMAND="ssh -i /home/deploy/.ssh/id_ed25519_infra" \ git clone git@github.com:iisultanov/iistwin-infra.git /opt/crm-infra @@ -84,14 +86,14 @@ jobs: git -C /opt/crm-infra fetch origin main git -C /opt/crm-infra reset --hard origin/main fi - cp /opt/crm-infra/docker-compose.prod.yml docker-compose.yml + COMPOSE="docker compose -f /opt/crm-infra/docker-compose.prod.yml --project-directory /opt/crm" # 5. Удалить старые/зависшие контейнеры, чтобы избежать # Conflict: container name is already in use docker stop crm-app-1 crm-document-worker-1 2>/dev/null || true docker rm -f crm-app-1 crm-document-worker-1 2>/dev/null || true - docker compose stop app document-worker || true - docker compose rm -f app document-worker || true + $COMPOSE stop app document-worker || true + $COMPOSE rm -f app document-worker || true docker ps -aq --filter "name=crm-app" | xargs -r docker rm -f || true docker ps -aq --filter "name=crm-document-worker" | xargs -r docker rm -f || true @@ -111,7 +113,7 @@ jobs: BUILD_OK=false for attempt in 1 2 3; do echo "=== Docker build attempt $attempt ===" - if docker compose build --build-arg BUILD_SHA=$BUILD_SHA --build-arg ALPINE_MIRROR=mirrors.aliyun.com app; then + if $COMPOSE build --build-arg BUILD_SHA=$BUILD_SHA --build-arg ALPINE_MIRROR=mirrors.aliyun.com app; then BUILD_OK=true break fi @@ -129,9 +131,9 @@ jobs: fi # 6.5 Получить свежий prebuilt образ document-worker из GHCR - docker compose pull document-worker + $COMPOSE pull document-worker - docker compose up -d app document-worker + $COMPOSE up -d app document-worker # 7. Дождаться healthcheck'ов echo "Waiting for healthchecks..."