dockerfiles/chevereto/hooks/build

82 lines
2.8 KiB
Bash

#!/bin/bash
# build
#
# This is a hook in the docker-chevereto repo by Tan Nguyen
# This is intended to be run locally, or via the automatic builder by Docker hub
# The script should be execute from the root of the project
# The list of versions of the image (ie. tag) which we wish to build is available in the file versions in the root of the project
echo "------ HOOK START - BUILD -------"
DOCKER_HUB_NAME=nmtan/chevereto
VERSION_LIST_FILE=versions
BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"`
function build_image(){
if [ $# -lt 1 ]; then
# missing the damn tag
return 0;
fi
tag_name="${1}"
image_full_name="${DOCKER_HUB_NAME}:${tag_name}"
case "${tag_name}" in
latest)
# Latest version - we do not need the version argument - latest version is defined in Dockerfile itself
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg CHEVERETO_VERSION="master" \
-t "${image_full_name}" .
;;
installer)
# Latest version - we do not need the version argument - latest version is defined in Dockerfile itself
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
-f Dockerfile-installer \
-t "${image_full_name}" .
;;
1.3.*)
# These versions support php 7.3
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg CHEVERETO_VERSION="${1}" \
-t "${image_full_name}" .
;;
1.2.*)
# These versions support php 7.3
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg PHP_VERSION="7.3-apache" \
--build-arg CHEVERETO_VERSION="${1}" \
-t "${image_full_name}" .
;;
1.1.*)
# These versions support php 7.2
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg CHEVERETO_VERSION="${1}" \
--build-arg PHP_VERSION="7.2-apache" \
-t "${image_full_name}" .
;;
1.0.1[0-3]|1.0.[6-9])
# These versions support PHP 7.1
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg CHEVERETO_VERSION="${1}" \
--build-arg PHP_VERSION="7.1.23-apache" \
-t "${image_full_name}" .
;;
*)
# These versions support PHP below 7.1
docker build --rm --build-arg BUILD_DATE="${BUILD_DATE}" \
--build-arg CHEVERETO_VERSION="${1}" \
--build-arg PHP_VERSION="7.0.32-apache" \
-t "${image_full_name}" .
;;
esac
docker push "${image_full_name}"
}
while read -r tag; do
echo "Building the image ${DOCKER_HUB_NAME}:${tag}"
build_image "${tag}"
done < ${VERSION_LIST_FILE}
echo "------ HOOK END - BUILD -------"