Skip to content

Commit

Permalink
ci/cd
Browse files Browse the repository at this point in the history
  • Loading branch information
qogustj committed Oct 6, 2023
1 parent 04d2617 commit df7f35e
Showing 1 changed file with 39 additions and 28 deletions.
67 changes: 39 additions & 28 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -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
fi

0 comments on commit df7f35e

Please sign in to comment.