fix: make Blue-Green deployment safe by checking Nginx reload status and removing redundant host Gradle build to prevent OOM server crashes
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 10m6s
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 10m6s
This commit is contained in:
@@ -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
|
||||
|
||||
# 가비지 청소
|
||||
|
||||
Reference in New Issue
Block a user