diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 00b57a7..abf35b8 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -1,48 +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" -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:8081) - if [ -n "$REQUEST" ]; then - echo ">>> 🍃 health check success !" - break; - fi + + REQUEST=$(curl http://127.0.0.1:8081) # 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합니다." + + echo "5. blue container down" docker-compose stop blue -# green이 실행 중이면 blue를 up합니다. 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:8080) - if [ -n "$REQUEST" ]; then - echo ">>> 🍃 health check success !" - break; + REQUEST=$(curl http://127.0.0.1:8080) # 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 -#cicd \ No newline at end of file +fi \ No newline at end of file