Skip to content

Commit

Permalink
[fix] deploy.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
sebbbin authored Oct 6, 2023
1 parent 215c94f commit d48c5fb
Showing 1 changed file with 37 additions and 29 deletions.
66 changes: 37 additions & 29 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,51 +1,59 @@
#!/bin/bash

IS_GREEN_EXIST=$(docker ps | grep green)
IS_GREEN=$(docker ps | grep green) # 현재 실행중인 App이 blue인지 확인합니다.
DEFAULT_CONF=" /etc/nginx/nginx.conf"

# blue가 실행 중이면 green을 up합니다.
if [ -z $IS_GREEN_EXIST ];then
if [ -z $IS_GREEN ];then # blue라면

echo "### BLUE => GREEN ####"
echo ">>> green image를 pull합니다."
docker-compose pull green
echo ">>> green container를 up합니다."
docker-compose up -d green

echo "1. get green image"
docker-compose pull green # green으로 이미지를 내려받습니다.

echo "2. green container up"
docker-compose up -d green # green 컨테이너 실행

while [ 1 = 1 ]; do
echo ">>> green health check..."
echo "3. green health check..."
sleep 3
REQUEST=$(curl http://127.0.0.1:8082)
if [ -n "$REQUEST" ]; then
echo ">>> 🍃 health check success !"
break;
fi

REQUEST=$(curl http://127.0.0.1:8082) # green으로 request
if [ -n "$REQUEST" ]; then # 서비스 가능하면 health check 중지
echo "health check success"
break ;
fi
done;
sleep 3
echo ">>> nginx를 다시 실행 합니다."

echo "4. reload nginx"
sudo cp /etc/nginx/nginx.green.conf /etc/nginx/nginx.conf
sudo nginx -s reload
echo ">>> blue container를 down합니다."
docker-compose stop blue

# green이 실행 중이면 blue를 up합니다.
echo "5. blue container down"
docker-compose stop blue
else
echo "### GREEN => BLUE ###"
echo ">>> blue image를 pull합니다."

echo "1. get blue image"
docker-compose pull blue
echo ">>> blue container up합니다."

echo "2. blue container up"
docker-compose up -d blue

while [ 1 = 1 ]; do
echo ">>> blue health check..."
echo "3. blue health check..."
sleep 3
REQUEST=$(curl http://127.0.0.1:8081)
if [ -n "$REQUEST" ]; then
echo ">>> 🍃 health check success !"
break;
REQUEST=$(curl http://127.0.0.1:8081) # blue로 request

if [ -n "$REQUEST" ]; then # 서비스 가능하면 health check 중지
echo "health check success"
break ;
fi
done;
sleep 3
echo ">>> nginx를 다시 실행 합니다."

echo "4. reload nginx"
sudo cp /etc/nginx/nginx.blue.conf /etc/nginx/nginx.conf
sudo nginx -s reload
echo ">>> green container를 down합니다."

echo "5. green container down"
docker-compose stop green
fi
fi

0 comments on commit d48c5fb

Please sign in to comment.