1+ #! /bin/bash
2+
3+ IS_GREEN_EXIST=$( docker ps | grep green)
4+ IS_REDIS_EXIST=$( docker ps | grep redis)
5+
6+ if [ -z " $IS_REDIS_EXIST " ]; then
7+ echo " ### REDIS ###"
8+ echo " >>> pull redis image"
9+ docker compose pull redis-dev
10+ echo " >>> up redis container"
11+ docker compose up -d redis-dev
12+ fi
13+
14+ # green up
15+ if [ -z " $IS_GREEN_EXIST " ]; then
16+ echo " ### BLUE -> GREEN ####"
17+ echo " >>> pull green image"
18+ docker pull jinkonu/feelin-dev:latest
19+ echo " >>> remove old green container"
20+
21+ docker compose -f /home/ubuntu/docker-compose-dev.yml rm -fs green
22+ echo " >>> up green container"
23+ docker compose -f /home/ubuntu/docker-compose-dev.yml up -d green
24+
25+ while [ 1 = 1 ]; do
26+ echo " >>> green health check ..."
27+ sleep 3
28+ REQUEST=$( curl http://127.0.0.1:8082/actuator/health)
29+ if [ -n " $REQUEST " ]; then
30+ echo " >>> health check success !"
31+ break ;
32+ fi
33+ done ;
34+ sleep 3
35+ echo " >>> reload nginx"
36+ sudo cp /etc/nginx/conf.d/green-url.inc /etc/nginx/conf.d/service-url.inc
37+ sudo /usr/sbin/nginx -s reload
38+ echo " >>> down blue container"
39+
40+ docker compose -f /home/ubuntu/docker-compose-dev.yml stop blue
41+
42+
43+ # blue up
44+ else
45+ echo " ### GREEN -> BLUE ###"
46+ echo " >>> pull blue image"
47+ docker pull jinkonu/feelin-dev:latest
48+ echo " >>> remove old blue container"
49+
50+ docker compose -f /home/ubuntu/docker-compose-dev.yml rm -fs blue
51+ echo " >>> up blue container"
52+ docker compose -f /home/ubuntu/docker-compose-dev.yml up -d blue
53+
54+ while [ 1 = 1 ]; do
55+ echo " >>> blue health check ..."
56+ sleep 3
57+ REQUEST=$( curl http://127.0.0.1:8081/actuator/health)
58+ if [ -n " $REQUEST " ]; then
59+ echo " >>> health check success !"
60+ break ;
61+ fi
62+ done ;
63+ sleep 3
64+ echo " >>> reload nginx"
65+ sudo cp /etc/nginx/conf.d/blue-url.inc /etc/nginx/conf.d/service-url.inc
66+ sudo /usr/sbin/nginx -s reload
67+ echo " >>> down green container"
68+
69+ docker compose -f /home/ubuntu/docker-compose-dev.yml stop green
70+
71+ docker image prune -f
72+ fi
0 commit comments