-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
56 lines (45 loc) · 1.27 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
docker_image=echo
blue=blue:3000
green=green:3000
build: version=$(shell date +%s)
build:
docker build . -t ${docker_image}:${version} --build-arg version=${version}
@echo "✅ version: ${version}"
deploy: image=$(shell docker images -q ${docker_image}:${version})
deploy:
echo "check version: ${version} ${image} to deploy ${target}"
@if [ "${image}" == "" ]; then\
echo "❌ version: ${version} not found";\
exit 1;\
fi
docker compose stop ${target}
docker rmi ${docker_image}:${target}
docker compose rm -f ${target}
docker tag ${docker_image}:${version} ${docker_image}:${target}
docker compose create ${target}
docker compose start ${target}
@echo "✅ ${target} version: ${version} is deployed"
balance:
sed -e "s/%BLUE%/${blue}/g" -e "s/%GREEN%/${green}/g" nginx/nginx.template > nginx/nginx.conf
docker exec nginx /bin/sh -c "nginx -s reload"
@echo "✅ load balancer is ready"
blue:
make deploy target=blue
green:
make deploy target=green
blue-down:
make balance blue="${blue} backup"
blue-up:
make balance blue="${blue}"
green-down:
make balance green="${green} backup"
green-up:
make balance green="${green}"
deploy-blue:
make blue-down
make deploy target=blue
make blue-up
deploy-green:
make green-down
make deploy target=green
make green-up