fix: adapt server deployment and compose command execution to mirror NPB bridge container pattern
This commit is contained in:
+31
-40
@@ -68,51 +68,42 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
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
|
|
||||||
|
|
||||||
# Подготовка папок в новой структуре
|
echo "🌉 Создаем мост к серверу через временный контейнер..."
|
||||||
mkdir -p /root/projects/xflow/.output /root/projects/xflow/prisma /root/projects/xflow/node_modules
|
docker stop bridge 2>/dev/null || true
|
||||||
cp -r .output/. /root/projects/xflow/.output/
|
docker rm bridge 2>/dev/null || true
|
||||||
cp -r prisma/. /root/projects/xflow/prisma/
|
docker run -d --name bridge -v /root/projects:/server alpine sleep 300
|
||||||
cp -r node_modules/. /root/projects/xflow/node_modules/
|
|
||||||
cp package.json /root/projects/xflow/package.json
|
echo "🧹 Очистка старых файлов на сервере..."
|
||||||
cp prisma.config.ts /root/projects/xflow/prisma.config.ts
|
docker exec bridge sh -c "rm -rf /server/xflow/.output/*"
|
||||||
|
docker exec bridge sh -c "rm -rf /server/xflow/prisma/*"
|
||||||
# Перезапуск конкретного сервиса в рамках общей инфраструктуры
|
|
||||||
# Мы используем мастер-файл из корня проектов
|
echo "🚀 Копирование билда и файлов на сервер..."
|
||||||
docker stop xflow_crm 2>/dev/null || true
|
docker exec bridge mkdir -p /server/xflow/.output
|
||||||
docker rm xflow_crm 2>/dev/null || true
|
docker exec bridge mkdir -p /server/xflow/prisma
|
||||||
|
docker exec bridge mkdir -p /server/xflow/node_modules
|
||||||
if docker compose version >/dev/null 2>&1; then
|
|
||||||
docker compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm
|
docker cp .output/. bridge:/server/xflow/.output/
|
||||||
else
|
docker cp prisma/. bridge:/server/xflow/prisma/
|
||||||
docker-compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm
|
docker cp node_modules/. bridge:/server/xflow/node_modules/
|
||||||
fi
|
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..."
|
echo "⏳ Waiting for container to start..."
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
# Миграции с использованием новой БД xflow_crm_db
|
# Миграции с использованием новой БД xflow_crm_db
|
||||||
docker exec xflow_crm npx prisma migrate deploy
|
docker exec xflow_crm npx prisma migrate deploy
|
||||||
docker exec xflow_crm npx prisma db seed
|
docker exec xflow_crm npx prisma db seed
|
||||||
echo "✅ XFlow CRM deployed at $(date)"
|
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 }}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user