From 8ed1b57f1d330a186d5d4f5e458a0f93db52fce2 Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Mon, 15 Jun 2026 14:04:19 +0700 Subject: [PATCH] fix(ci): add container wait loop before health check in deploy Containers need time to start after docker compose up -d. Replaced instant grep check with up-to-60s retry loop. Co-Authored-By: Claude --- .github/workflows/deploy.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4dddd50..23a5261 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -189,8 +189,17 @@ jobs: docker rm -f zeavis-web zeavis-api zeavis-ml zeavis-node-exporter 2>/dev/null || true docker compose pull docker compose up -d + # Wait for containers to be healthy (up to 60s) + wait_container() { + local name=$1 + for i in $(seq 1 30); do + docker compose ps | grep -q "${name}.*Up" && return 0 + sleep 2 + done + return 1 + } + wait_container zeavis-web || exit 1 + wait_container zeavis-api || exit 1 + wait_container zeavis-ml || exit 1 + wait_container zeavis-node-exporter || echo "⚠️ node_exporter not running (non-fatal)" docker compose ps - docker compose ps | grep -q "zeavis-web.*Up" || exit 1 - docker compose ps | grep -q "zeavis-api.*Up" || exit 1 - docker compose ps | grep -q "zeavis-ml.*Up" || exit 1 - docker compose ps | grep -q "zeavis-node-exporter.*Up" || echo "⚠️ node_exporter not running (non-fatal)"