forked from jippi/docker-pritunl
-
Notifications
You must be signed in to change notification settings - Fork 1
/
update-pritunl.sh
101 lines (76 loc) · 2.65 KB
/
update-pritunl.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
set -e
set -o pipefail
DOCKER_ARGS="--squash"
DEBUG=${DEBUG:0}
if [ "${DEBUG}" != "1" ]; then
DOCKER_ARGS="$DOCKER_ARGS --quiet"
fi
if [ "${DEBUG}" == "1" ]; then
set -x
fi
# ensure checkout directory exist
if [ ! -d "/tmp/docker-pritunl" ]; then
git clone https://github.com/jippi/docker-pritunl.git /tmp/docker-pritunl
fi
# change work dir
# cd /tmp/docker-pritunl/
# update repo
# git pull
# docker tags
docker_tags=$(curl -s 'https://hub.docker.com/v2/repositories/jippi/pritunl/tags/?page_size=100' | jq -r '.results[].name' | sort -n)
function has_tag() {
check=$(echo "${docker_tags}" | grep "^$1$")
if [ "${check}" == "" ]; then
return 1
else
return 0
fi
}
# find latest tag from github
github_tags=$(curl -s https://api.github.com/repos/pritunl/pritunl/tags | jq -r '.[].name' | sort -n)
first=1
for tag in $github_tags; do
echo "[${tag}] Processing"
# build with mongo (default container)
if ! has_tag "${tag}"; then
echo "[${tag}] Building"
docker build $DOCKER_ARGS -t "jippi/pritunl:${tag}" --build-arg PRITUNL_VERSION="${tag}" .
echo "[${tag}] Pushing"
docker push "jippi/pritunl:${tag}"
if [ $first -eq 1 ]; then
echo "[${tag}] Tagging as latest"
docker tag "jippi/pritunl:${tag}" "jippi/pritunl:latest"
echo "[${tag}] Pushing as latest"
docker push "jippi/pritunl:latest"
echo "[${tag}] Untagging latest"
docker rmi "jippi/pritunl:latest"
fi
echo "[${tag}] Untagging"
docker rmi "jippi/pritunl:${tag}"
echo "[${tag}] Done"
else
echo "[${tag}] Already build"
fi
# build without mongo (special tag)
if ! has_tag "${tag}-minimal"; then
echo "[${tag}-minimal] Building"
docker build $DOCKER_ARGS -t "jippi/pritunl:${tag}-minimal" --build-arg PRITUNL_VERSION="${tag}" --build-arg MONGODB_VERSION=no .
echo "[${tag}-minimal] Pushing"
docker push "jippi/pritunl:${tag}-minimal"
if [ $first -eq 1 ]; then
echo "[${tag}-minimal] Tagging as latest-minimal"
docker tag "jippi/pritunl:${tag}-minimal" "jippi/pritunl:latest-minimal"
echo "[${tag}-minimal] Pushing as latest-minimal"
docker push "jippi/pritunl:latest-minimal"
echo "[${tag}-minimal] Untagging latest"
docker rmi "jippi/pritunl:latest-minimal"
fi
echo "[${tag}-minimal] Untagging"
docker rmi "jippi/pritunl:${tag}-minimal"
echo "[${tag}-minimal] Done"
else
echo "[${tag}-minimal] Already build"
fi
first=0
done
docker images purge