-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.sh
executable file
·81 lines (66 loc) · 1.97 KB
/
build.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
#!/bin/bash
set -xe
DOCKER_IMAGE="rzlamrr/dvstlab"
BUILD_DATE="$(date -u +"%Y%m%d")"
# latest tag reference(focal/lite/arch)
LATEST="focal"
TAG=("focal" "lite" "arch")
setupvar() {
IMAGE_TAG="${1}"
if [[ "${IMAGE_TAG}" == "focal" ]]; then
DOCKERFILE="Focal"
elif [[ "${IMAGE_TAG}" == "lite" ]]; then
DOCKERFILE="Lite"
elif [[ "${IMAGE_TAG}" == "arch" ]]; then
DOCKERFILE="Arch"
fi
if [[ -z "${DOCKERFILE}" ]]; then echo "No dockerfile"; exit 1; fi
LABELS="--label org.label-schema.build-date=${BUILD_DATE}
--label org.label-schema.name=AIO-DvsT-builder
--label org.label-schema.url=https://rzlamrr.github.io
--label org.label-schema.vcs-ref=$(git rev-parse --short HEAD)
--label org.label-schema.vcs-url=$(git remote get-url origin)
--label org.label-schema.vendor=rizal.amrr
--label org.label-schema.version=1.2
--label org.label-schema.schema-version=1.0"
FLAGS="--rm --compress --pull --file ${DOCKERFILE} --tag ${DOCKER_IMAGE}:${IMAGE_TAG}"
}
# shellcheck disable=SC2086
builder() {
docker build . ${FLAGS} ${LABELS}
}
# shellcheck disable=SC2086
push() {
docker push ${DOCKER_IMAGE}:${1}
}
push_latest() {
docker tag ${DOCKER_IMAGE}:${LATEST} ${DOCKER_IMAGE}:latest
docker push ${DOCKER_IMAGE}:latest
}
# shellcheck disable=SC2086
scan() {
echo "y" | docker scan --login --token ${SNYK_AUTH_TOKEN}
docker scan --accept-license rzlamrr/dvstlab:focal | tee scan/focal.txt
docker scan --accept-license rzlamrr/dvstlab:lite | tee scan/lite.txt
docker scan --accept-license rzlamrr/dvstlab:arch | tee scan/arch.txt
}
# shellcheck disable=SC2076
if [[ -n "${1}" ]]; then
if [[ "${1}" == "scan" ]]; then
scan
elif [[ "${TAG[*]}" =~ "${1}" ]]; then
setupvar "${1}"
builder
push "${1}"
else
echo "Invalid argument!"
exit 1
fi
else
for i in "${TAG[@]}"; do
setupvar "$i"
builder
push "$i"
done
push_latest
fi