From f56e503a29ee5f6f981d753dc396a5cd56c294cd Mon Sep 17 00:00:00 2001 From: jade Date: Fri, 24 Jul 2026 10:55:32 +0900 Subject: [PATCH] fix: make Blue-Green deployment safe by checking Nginx reload status and removing redundant host Gradle build to prevent OOM server crashes --- .gitea/workflows/deploy.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 8990c782..57831012 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -26,17 +26,7 @@ jobs: run: | echo "Starting Blue-Green CI/CD Deploy pipeline..." - # 1. gradle 공식 이미지로 바로 컴파일 빌드! - docker run --rm \ - -v /home/ubuntu/app/ax_hub_mcp_tool:/app \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v /home/ubuntu/.gradle:/home/gradle/.gradle \ - -w /app \ - gradle:8-jdk21 \ - ./gradlew clean bootJar -x test - - # 2. 빌드 결과 plain jar 아카이브 정리 - find /app -name "*-plain.jar" -delete + # 1. (제거됨: 호스트 볼륨에서의 불필요한 gradle 빌드 제외 - Dockerfile 내에서 이미 수행하므로 OOM 방지) cd /app @@ -104,10 +94,18 @@ jobs: echo "Health Check Passed! Switching traffic to $TARGET..." mkdir -p ./nginx/conf.d cp ./nginx/${TARGET}.conf ./nginx/conf.d/default.conf - docker compose exec -T nginx nginx -s reload + + if ! docker compose exec -T nginx nginx -s reload; then + echo "Nginx reload failed! Rolling back Nginx configuration..." + cp ./nginx/${OLD_TARGET}.conf ./nginx/conf.d/default.conf + docker compose exec -T nginx nginx -s reload || true + echo "Stopping failed $TARGET containers..." + docker compose stop gateway-$TARGET tool-sms-$TARGET tool-email-$TARGET tool-other-$TARGET tool-payment-$TARGET + exit 1 + fi # 7. 구버전 종료 - echo "Traffic switched. Stopping old $OLD_TARGET containers..." + echo "Traffic switched successfully. Stopping old $OLD_TARGET containers..." docker compose stop gateway-$OLD_TARGET tool-sms-$OLD_TARGET tool-email-$OLD_TARGET tool-other-$OLD_TARGET tool-payment-$OLD_TARGET # 가비지 청소