perf: switch to Modelo A - build on VPS4, ship image to VPS1 (10x faster ~30s)
continuous-integration/webhook Falha no deploy (VPS4)
continuous-integration/webhook Falha no deploy (VPS4)
This commit is contained in:
+20
-14
@@ -34,27 +34,33 @@ git reset --hard origin/main
|
|||||||
log "🔢 Incrementando versão..."
|
log "🔢 Incrementando versão..."
|
||||||
node update-version.js
|
node update-version.js
|
||||||
|
|
||||||
# 3. Enviar código-fonte para VPS1
|
# 3. Build a imagem na VPS4 (Builder)
|
||||||
log "🚚 rsync código-fonte → VPS1..."
|
log "🐳 docker compose build na VPS4..."
|
||||||
rsync -avz --delete \
|
docker compose -f "$PROD_PATH/docker-compose.yml" build app
|
||||||
--exclude '.git' \
|
|
||||||
--exclude '.env' \
|
# 4. Exportar imagem para arquivo
|
||||||
--exclude 'node_modules' \
|
log "💾 Exportando imagem para arquivo..."
|
||||||
--exclude 'uploads' \
|
IMAGE_NAME="rxscoreodontocom-app:latest"
|
||||||
--exclude 'processed' \
|
IMAGE_TAR="/tmp/rxscoreodontocom-app.tar.gz"
|
||||||
--exclude 'data' \
|
docker save "$IMAGE_NAME" | gzip > "$IMAGE_TAR"
|
||||||
--exclude 'dental-server/updates' \
|
|
||||||
"$PROD_PATH/" \
|
# 5. Enviar docker-compose.yml + imagem para VPS1
|
||||||
|
log "🚚 rsync docker-compose + imagem → VPS1..."
|
||||||
|
rsync -avz \
|
||||||
|
"$PROD_PATH/docker-compose.yml" \
|
||||||
|
"$PROD_PATH/.env.prod" \
|
||||||
|
"$IMAGE_TAR" \
|
||||||
"${PROD_USER}@${PROD_VPS}:${PROD_PATH}/"
|
"${PROD_USER}@${PROD_VPS}:${PROD_PATH}/"
|
||||||
|
|
||||||
# 4. Build + swap do container na VPS1 (sem downtime)
|
# 6. Carregar imagem e subir container na VPS1
|
||||||
log "🐳 docker compose build + up na VPS1..."
|
log "🚀 Load imagem + docker compose up na VPS1..."
|
||||||
ssh -o BatchMode=yes -o StrictHostKeyChecking=no "${PROD_USER}@${PROD_VPS}" "
|
ssh -o BatchMode=yes -o StrictHostKeyChecking=no "${PROD_USER}@${PROD_VPS}" "
|
||||||
set -e
|
set -e
|
||||||
cd ${PROD_PATH}
|
cd ${PROD_PATH}
|
||||||
export DOCKER_HOST=${DOCKER_HOST_REMOTE}
|
export DOCKER_HOST=${DOCKER_HOST_REMOTE}
|
||||||
docker compose build app
|
docker load < rxscoreodontocom-app.tar.gz
|
||||||
docker compose up -d --no-deps app
|
docker compose up -d --no-deps app
|
||||||
|
rm -f rxscoreodontocom-app.tar.gz
|
||||||
"
|
"
|
||||||
|
|
||||||
# 5. Commit do bump de versão de volta ao Gitea (listener ignora → sem loop)
|
# 5. Commit do bump de versão de volta ao Gitea (listener ignora → sem loop)
|
||||||
|
|||||||
Reference in New Issue
Block a user