Fix caching in build.sh

This commit is contained in:
Christian Mäder 2019-10-10 15:24:53 +02:00 committed by Christian Mäder
parent 052b53aa5c
commit ab4b8720d1

View File

@ -19,10 +19,6 @@ if [ "${1}x" == "x" ] || [ "${1}" == "--help" ] || [ "${1}" == "-h" ]; then
echo " When <BRANCH>=master: latest" echo " When <BRANCH>=master: latest"
echo " When <BRANCH>=develop: snapshot" echo " When <BRANCH>=develop: snapshot"
echo " Else: same as <BRANCH>" echo " Else: same as <BRANCH>"
echo " DOCKER_OPTS Add parameters to Docker."
echo " Default:"
echo " When <TAG> starts with 'v': \"\""
echo " Else: \"--no-cache\""
echo " DOCKER_ORG The Docker registry (i.e. hub.docker.com/r/<DOCKER_ORG>/<DOCKER_REPO>)" echo " DOCKER_ORG The Docker registry (i.e. hub.docker.com/r/<DOCKER_ORG>/<DOCKER_REPO>)"
echo " Also used for tagging the image." echo " Also used for tagging the image."
echo " Default: netboxcommunity" echo " Default: netboxcommunity"
@ -129,11 +125,11 @@ for DOCKER_TARGET in "${DOCKER_TARGETS[@]}"; do
echo "🏗 Building the target '$DOCKER_TARGET'" echo "🏗 Building the target '$DOCKER_TARGET'"
### ###
# composing the final DOCKER_TAG # composing the final TARGET_DOCKER_TAG
### ###
DOCKER_TAG="${DOCKER_TAG-${DOCKER_ORG}/${DOCKER_REPO}:${TAG}}" TARGET_DOCKER_TAG="${DOCKER_TAG-${DOCKER_ORG}/${DOCKER_REPO}:${TAG}}"
if [ "$DOCKER_TARGET" != "main" ]; then if [ "$DOCKER_TARGET" != "main" ]; then
DOCKER_TAG="${DOCKER_TAG}-${DOCKER_TARGET}" TARGET_DOCKER_TAG="${TARGET_DOCKER_TAG}-${DOCKER_TARGET}"
fi fi
### ###
@ -155,7 +151,10 @@ for DOCKER_TARGET in "${DOCKER_TARGETS[@]}"; do
### ###
# Composing global Docker CLI arguments # Composing global Docker CLI arguments
### ###
DOCKER_OPTS=("${DOCKER_OPTS[@]}") DOCKER_OPTS=(
--pull
--target "$DOCKER_TARGET"
)
# caching is only ok for version tags, # caching is only ok for version tags,
# but turning the cache off is only required for the # but turning the cache off is only required for the
@ -165,9 +164,6 @@ for DOCKER_TARGET in "${DOCKER_TARGETS[@]}"; do
*) [ "$DOCKER_TARGET" == "${DOCKER_TARGETS[0]}" ] && DOCKER_OPTS+=( --no-cache ) ;; *) [ "$DOCKER_TARGET" == "${DOCKER_TARGETS[0]}" ] && DOCKER_OPTS+=( --no-cache ) ;;
esac esac
DOCKER_OPTS+=( --pull )
DOCKER_OPTS+=( --target "$DOCKER_TARGET" )
### ###
# Composing arguments for `docker build` CLI # Composing arguments for `docker build` CLI
### ###
@ -208,13 +204,13 @@ for DOCKER_TARGET in "${DOCKER_TARGETS[@]}"; do
# Building the docker images, except if `--push-only` is passed # Building the docker images, except if `--push-only` is passed
### ###
if [ "${2}" != "--push-only" ] ; then if [ "${2}" != "--push-only" ] ; then
echo "🐳 Building the Docker image '${DOCKER_TAG}' from the url '${URL}'." echo "🐳 Building the Docker image '${TARGET_DOCKER_TAG}' from the url '${URL}'."
$DOCKER_CMD build -t "${DOCKER_TAG}" "${DOCKER_BUILD_ARGS[@]}" "${DOCKER_OPTS[@]}" -f "${DOCKERFILE}" . $DOCKER_CMD build -t "${TARGET_DOCKER_TAG}" "${DOCKER_BUILD_ARGS[@]}" "${DOCKER_OPTS[@]}" -f "${DOCKERFILE}" .
echo "✅ Finished building the Docker images '${DOCKER_TAG}'" echo "✅ Finished building the Docker images '${TARGET_DOCKER_TAG}'"
if [ -n "$DOCKER_SHORT_TAG" ]; then if [ -n "$DOCKER_SHORT_TAG" ]; then
echo "🐳 Tagging image '${DOCKER_SHORT_TAG}'." echo "🐳 Tagging image '${DOCKER_SHORT_TAG}'."
$DOCKER_CMD tag "${DOCKER_TAG}" "${DOCKER_SHORT_TAG}" $DOCKER_CMD tag "${TARGET_DOCKER_TAG}" "${DOCKER_SHORT_TAG}"
echo "✅ Tagged image '${DOCKER_SHORT_TAG}'" echo "✅ Tagged image '${DOCKER_SHORT_TAG}'"
fi fi
fi fi
@ -223,9 +219,9 @@ for DOCKER_TARGET in "${DOCKER_TARGETS[@]}"; do
# Pushing the docker images if either `--push` or `--push-only` are passed # Pushing the docker images if either `--push` or `--push-only` are passed
### ###
if [ "${2}" == "--push" ] || [ "${2}" == "--push-only" ] ; then if [ "${2}" == "--push" ] || [ "${2}" == "--push-only" ] ; then
echo "⏫ Pushing '${DOCKER_TAG}" echo "⏫ Pushing '${TARGET_DOCKER_TAG}"
$DOCKER_CMD push "${DOCKER_TAG}" $DOCKER_CMD push "${TARGET_DOCKER_TAG}"
echo "✅ Finished pushing the Docker image '${DOCKER_TAG}'." echo "✅ Finished pushing the Docker image '${TARGET_DOCKER_TAG}'."
if [ -n "$DOCKER_SHORT_TAG" ]; then if [ -n "$DOCKER_SHORT_TAG" ]; then
echo "⏫ Pushing '${DOCKER_SHORT_TAG}'" echo "⏫ Pushing '${DOCKER_SHORT_TAG}'"