ci(deploy): compose из инфра-репо напрямую через -f (чистый git status на сервере)

Шаг 0.14 (доработка): без cp в /opt/crm — docker compose -f
/opt/crm-infra/docker-compose.prod.yml --project-directory /opt/crm
This commit is contained in:
2026-09-08 15:02:33 +03:00
parent 0fb3b54b66
commit a5ab294608

View File

@@ -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..."