-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathbuild-image.sh
82 lines (73 loc) · 1.59 KB
/
build-image.sh
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
set -ex
USER='hellej'
PS3='Select project: '
option_labels=("green paths server" "graph updater")
select opt in "${option_labels[@]}"; do
case $opt in
"green paths server")
echo "green paths server"
DOCKER_SUFFIX='.gp-server'
DOCKER_IMAGE=${USER}/hope-green-path-server
break
;;
"graph updater")
echo "aqi updater"
DOCKER_SUFFIX='.aqi-updater'
DOCKER_IMAGE=${USER}/hope-graph-updater
break
;;
*)
break
;;
esac
done
if [[ -z "${DOCKER_SUFFIX}" ]]; then
echo "Invalid option -> cancel build."
exit 0
fi
echo "Building image from: Dockerfile${DOCKER_SUFFIX}"
PS3='Select image to build: '
option_labels=("dev" "prod" "all")
select opt in "${option_labels[@]}"; do
case $opt in
"dev")
WHICH_IMAGE='dev'
echo "Build dev"
break
;;
"prod")
WHICH_IMAGE='prod'
echo "Build prod"
break
;;
"all")
WHICH_IMAGE='all'
echo "Build all"
break
;;
*)
break
;;
esac
done
if [[ -z "${WHICH_IMAGE}" ]]; then
echo "Invalid option -> cancel build."
exit 0
fi
echo "Build image (latest)"
docker build -f Dockerfile${DOCKER_SUFFIX} -t ${DOCKER_IMAGE}:latest .
if [[ $WHICH_IMAGE == "dev" || $WHICH_IMAGE == "all" ]] ; then
echo "Tag & push dev"
docker tag ${DOCKER_IMAGE}:latest ${DOCKER_IMAGE}:dev
for TAG in latest dev; do
docker push ${DOCKER_IMAGE}:${TAG}
done
fi
if [[ $WHICH_IMAGE == "prod" || $WHICH_IMAGE == "all" ]] ; then
echo "Tag & push prod (1)"
docker tag ${DOCKER_IMAGE}:latest ${DOCKER_IMAGE}:1
for TAG in latest 1; do
docker push ${DOCKER_IMAGE}:${TAG}
done
fi