docker_build_wrapper.sh
1.0 KB
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
#!/bin/bash
die() { echo "$@" 1>&2 ; exit 1; }
info() { echo "===> $*"; }
docker_build() {
declare name="$1"; shift
declare path="$1"; shift
declare args="$*"
info "Building ${name} image..."
if [ "${DOCKER_REGISTRY}" != "" ]; then
remote_name="${DOCKER_REGISTRY}/${name}"
docker_pull "${remote_name}"
args="${args} --cache-from \"${remote_name}\""
fi
old_id=$(docker images -q "${name}")
info "Old ${name} image id: ${old_id}"
docker build --cache-from "${name}" ${args} -t "${name}" "${path}" || \
die "Building ${name} image failed"
new_id=$(docker images -q "${name}")
info "New ${name} image id: ${new_id}"
if [ "${new_id}" != "${old_id}" ] && [ "${DOCKER_PUSH:-0}" != "0" ] && [ "${DOCKER_REGISTRY}" != "" ]; then
docker tag "${name}" "${remote_name}"
docker_push "${remote_name}"
fi
}
docker_pull() {
info "Attempting to pull '$1' image from registry..."
docker pull "$1" || true
}
docker_push() {
info "Pushing '$1' image to registry..."
docker push "$1"
}
docker_build $@