@@ -119,45 +119,41 @@ jobs:
119119 set -e
120120
121121 IMAGE="ghcr.io/${{ needs.buildImageAndPush.outputs.owner_lc }}/${{ needs.buildImageAndPush.outputs.image_name }}:latest"
122- SOCKET ="/var/run/ haproxy.sock "
122+ CFG ="/dockerProjects/ha_proxy_1/volumes/usr/local/etc/ haproxy/haproxy.cfg "
123123
124124 echo "=== Blue-Green Deploy Start ==="
125125
126- # 현재 활성 server 확인
127- ACTIVE=$(docker exec ha_proxy_1 \
128- sh -c "echo 'show servers state app_backend' | socat stdio $SOCKET" \
129- | grep RUNNING | awk '{print $2}')
130-
131- if [ "$ACTIVE" = "blue" ]; then
132- NEW="app1_temp"
133- NEW_SERVER="green"
126+ # 현재 활성 컨테이너 판단
127+ if docker ps --format '{{.Names}}' | grep -q "^app1$"; then
134128 OLD="app1"
129+ NEW="app1_temp"
135130 OLD_SERVER="blue"
131+ NEW_SERVER="green"
136132 else
137- NEW="app1"
138- NEW_SERVER="blue"
139133 OLD="app1_temp"
134+ NEW="app1"
140135 OLD_SERVER="green"
136+ NEW_SERVER="blue"
141137 fi
142138
143- echo "Active server : $OLD_SERVER"
144- echo "New server : $NEW_SERVER"
139+ echo "OLD : $OLD ($ OLD_SERVER) "
140+ echo "NEW : $NEW ($ NEW_SERVER) "
145141
146142 # 이미지 pull
147143 docker pull $IMAGE
148144
149- # 신규 컨테이너 정리
145+ # 새 컨테이너 정리
150146 docker stop $NEW 2>/dev/null || true
151147 docker rm $NEW 2>/dev/null || true
152148
153- # 신규 컨테이너 실행
149+ # 새 컨테이너 실행
154150 docker run -d \
155151 --name $NEW \
156152 --network common \
157153 -e DOPPLER_TOKEN=${{ secrets.DOPPLER_TOKEN }} \
158154 $IMAGE
159155
160- # Health check
156+ # Health Check
161157 for i in {1..30}; do
162158 if docker exec $NEW curl -fs http://localhost:8080/actuator/health > /dev/null; then
163159 echo "✅ Health check passed"
@@ -172,18 +168,16 @@ jobs:
172168 sleep 2
173169 done
174170
175- # 트래픽 전환 (무중단 핵심)
176- docker exec ha_proxy_1 sh -c "
177- echo 'enable server app_backend/$NEW_SERVER' | socat stdio $SOCKET
178- echo 'disable server app_backend/$OLD_SERVER' | socat stdio $SOCKET
179- "
171+ # HAProxy 설정 스위칭
172+ sed -i "s/server $NEW_SERVER .* disabled/server $NEW_SERVER app1_temp:8080 check/" $CFG
173+ sed -i "s/server $OLD_SERVER .* check/server $OLD_SERVER app1:8080 check disabled/" $CFG
180174
181- echo "✅ Traffic switched: $OLD_SERVER → $NEW_SERVER"
175+ docker kill -s HUP ha_proxy_1
176+ echo "✅ HAProxy reloaded"
182177
183- # 안정화
184178 sleep 20
185179
186- # 이전 컨테이너 정리
180+ # 이전 컨테이너 제거
187181 docker stop $OLD 2>/dev/null || true
188182 docker rm $OLD 2>/dev/null || true
189183
0 commit comments