fix: prevent docker compose from consuming stdin in ssh deploy script
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m14s

This commit is contained in:
2026-05-17 17:31:19 +02:00
parent 63aeb5978d
commit 4ec39a42a8

View File

@@ -40,7 +40,7 @@ jobs:
BACKUP_FILE="${BACKUP_DIR}/translate_db_$(date +%Y%m%d_%H%M%S).sql.gz" BACKUP_FILE="${BACKUP_DIR}/translate_db_$(date +%Y%m%d_%H%M%S).sql.gz"
mkdir -p "$BACKUP_DIR" mkdir -p "$BACKUP_DIR"
docker compose exec -T postgres pg_dumpall -U translate | gzip > "$BACKUP_FILE" docker compose exec -T postgres pg_dumpall -U translate </dev/null | gzip > "$BACKUP_FILE"
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1) BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo " Backup saved: ${BACKUP_FILE} (${BACKUP_SIZE})" echo " Backup saved: ${BACKUP_FILE} (${BACKUP_SIZE})"
@@ -65,7 +65,7 @@ jobs:
# ────────────────────────────────────────────── # ──────────────────────────────────────────────
echo "=== [5/8] Waiting for postgres ===" echo "=== [5/8] Waiting for postgres ==="
for i in $(seq 1 30); do for i in $(seq 1 30); do
if docker compose exec -T postgres pg_isready -U translate >/dev/null 2>&1; then if docker compose exec -T postgres pg_isready -U translate </dev/null >/dev/null 2>&1; then
echo " Postgres ready after $((i * 2))s" echo " Postgres ready after $((i * 2))s"
break break
fi fi
@@ -82,7 +82,7 @@ jobs:
# entrypoint passes through args via exec "$@" # entrypoint passes through args via exec "$@"
# ────────────────────────────────────────────── # ──────────────────────────────────────────────
echo "=== [6/8] Running database migrations ===" echo "=== [6/8] Running database migrations ==="
if ! docker compose run --rm backend alembic upgrade head; then if ! docker compose run -T --rm backend alembic upgrade head </dev/null; then
echo " FATAL: Migration FAILED!" echo " FATAL: Migration FAILED!"
echo " Restoring database from backup..." echo " Restoring database from backup..."
gunzip -c "$BACKUP_FILE" | docker compose exec -T postgres psql -U translate -d translate_db >/dev/null 2>&1 || true gunzip -c "$BACKUP_FILE" | docker compose exec -T postgres psql -U translate -d translate_db >/dev/null 2>&1 || true
@@ -109,7 +109,7 @@ jobs:
if [ "$i" -eq 20 ]; then if [ "$i" -eq 20 ]; then
echo " FATAL: Backend not healthy after 100s" echo " FATAL: Backend not healthy after 100s"
echo " Rolling back database..." echo " Rolling back database..."
gunzip -c "$BACKUP_FILE" | docker compose exec -T postgres psql -U translate -d translate_db >/dev/null 2>&1 || true gunzip -c "$BACKUP_FILE" | docker compose exec -T postgres psql -U translate -d translate_db </dev/null >/dev/null 2>&1 || true
docker compose restart backend docker compose restart backend
echo " Deploy FAILED. Database restored." echo " Deploy FAILED. Database restored."
docker compose logs backend --tail=50 docker compose logs backend --tail=50