From 74b093b5ad446224842c42a991467bee1e026a95 Mon Sep 17 00:00:00 2001 From: AlexIves16 Date: Mon, 25 May 2026 08:19:38 +0500 Subject: [PATCH] fix: adapt server deployment and compose command execution to mirror NPB bridge container pattern --- .gitea/workflows/deploy.yml | 71 ++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 9f6ecdf..05e0bf8 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -68,51 +68,42 @@ jobs: exit 1 fi fi - - if ! command -v docker-compose >/dev/null 2>&1 && ! docker compose version >/dev/null 2>&1; then - if command -v apk >/dev/null 2>&1; then - apk add --no-cache docker-compose - elif command -v apt-get >/dev/null 2>&1; then - apt-get update && apt-get install -y docker-compose - else - echo "Docker compose not found and no package manager detected" - exit 1 - fi - fi - # Подготовка папок в новой структуре - mkdir -p /root/projects/xflow/.output /root/projects/xflow/prisma /root/projects/xflow/node_modules - cp -r .output/. /root/projects/xflow/.output/ - cp -r prisma/. /root/projects/xflow/prisma/ - cp -r node_modules/. /root/projects/xflow/node_modules/ - cp package.json /root/projects/xflow/package.json - cp prisma.config.ts /root/projects/xflow/prisma.config.ts - - # Перезапуск конкретного сервиса в рамках общей инфраструктуры - # Мы используем мастер-файл из корня проектов - docker stop xflow_crm 2>/dev/null || true - docker rm xflow_crm 2>/dev/null || true - - if docker compose version >/dev/null 2>&1; then - docker compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm - else - docker-compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm - fi + echo "🌉 Создаем мост к серверу через временный контейнер..." + docker stop bridge 2>/dev/null || true + docker rm bridge 2>/dev/null || true + docker run -d --name bridge -v /root/projects:/server alpine sleep 300 + + echo "🧹 Очистка старых файлов на сервере..." + docker exec bridge sh -c "rm -rf /server/xflow/.output/*" + docker exec bridge sh -c "rm -rf /server/xflow/prisma/*" + + echo "🚀 Копирование билда и файлов на сервер..." + docker exec bridge mkdir -p /server/xflow/.output + docker exec bridge mkdir -p /server/xflow/prisma + docker exec bridge mkdir -p /server/xflow/node_modules + + docker cp .output/. bridge:/server/xflow/.output/ + docker cp prisma/. bridge:/server/xflow/prisma/ + docker cp node_modules/. bridge:/server/xflow/node_modules/ + docker cp package.json bridge:/server/xflow/package.json + docker cp prisma.config.ts bridge:/server/xflow/prisma.config.ts + docker rm -f bridge + + echo "🔄 Перезапуск приложения через единый docker-compose.yml на хосте..." + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /root/projects:/root/projects \ + -w /root/projects \ + docker:cli \ + sh -c "docker compose stop xflow_crm 2>/dev/null || true; docker compose rm -f xflow_crm 2>/dev/null || true; docker compose up -d --force-recreate --no-deps xflow_crm" + echo "⏳ Waiting for container to start..." sleep 5 + # Миграции с использованием новой БД xflow_crm_db docker exec xflow_crm npx prisma migrate deploy docker exec xflow_crm npx prisma db seed echo "✅ XFlow CRM deployed at $(date)" - env: - FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} - FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }} - FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }} - FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} - FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }} - NUXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} - NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }} - NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }} - NUXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} - NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }} +