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:
14
.github/workflows/deploy.yml
vendored
14
.github/workflows/deploy.yml
vendored
@@ -77,6 +77,8 @@ jobs:
|
|||||||
|
|
||||||
# 2. Прод-compose — из приватного инфра-репозитория (единственный источник правды).
|
# 2. Прод-compose — из приватного инфра-репозитория (единственный источник правды).
|
||||||
# Раньше: git stash кастомизаций + копия из бэкапа вне репо (дрейф, шаг 0.14).
|
# Раньше: git stash кастомизаций + копия из бэкапа вне репо (дрейф, шаг 0.14).
|
||||||
|
# Файл используется напрямую с -f (без копирования в /opt/crm) —
|
||||||
|
# git status основного репо на сервере остаётся чистым.
|
||||||
if [ ! -d /opt/crm-infra/.git ]; then
|
if [ ! -d /opt/crm-infra/.git ]; then
|
||||||
GIT_SSH_COMMAND="ssh -i /home/deploy/.ssh/id_ed25519_infra" \
|
GIT_SSH_COMMAND="ssh -i /home/deploy/.ssh/id_ed25519_infra" \
|
||||||
git clone git@github.com:iisultanov/iistwin-infra.git /opt/crm-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 fetch origin main
|
||||||
git -C /opt/crm-infra reset --hard origin/main
|
git -C /opt/crm-infra reset --hard origin/main
|
||||||
fi
|
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. Удалить старые/зависшие контейнеры, чтобы избежать
|
# 5. Удалить старые/зависшие контейнеры, чтобы избежать
|
||||||
# Conflict: container name is already in use
|
# Conflict: container name is already in use
|
||||||
docker stop crm-app-1 crm-document-worker-1 2>/dev/null || true
|
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 rm -f crm-app-1 crm-document-worker-1 2>/dev/null || true
|
||||||
docker compose stop app document-worker || true
|
$COMPOSE stop app document-worker || true
|
||||||
docker compose rm -f 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-app" | xargs -r docker rm -f || true
|
||||||
docker ps -aq --filter "name=crm-document-worker" | 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
|
BUILD_OK=false
|
||||||
for attempt in 1 2 3; do
|
for attempt in 1 2 3; do
|
||||||
echo "=== Docker build attempt $attempt ==="
|
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
|
BUILD_OK=true
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
@@ -129,9 +131,9 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 6.5 Получить свежий prebuilt образ document-worker из GHCR
|
# 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'ов
|
# 7. Дождаться healthcheck'ов
|
||||||
echo "Waiting for healthchecks..."
|
echo "Waiting for healthchecks..."
|
||||||
|
|||||||
Reference in New Issue
Block a user