51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Bring in the variables from SOLUTION file, supporting
|
|
# nested substitution
|
|
. SOLUTION
|
|
|
|
function fail {
|
|
>&2 echo "$*"
|
|
exit -1
|
|
}
|
|
|
|
case "${OS_DISTRO}" in
|
|
rhel)
|
|
SOLUTION_SUFFIX=".rhel-8.0"
|
|
;;
|
|
ubuntu)
|
|
SOLUTION_SUFFIX=""
|
|
;;
|
|
*)
|
|
SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}"
|
|
[[ -d "templates/${OS_DISTRO}" ]] || {
|
|
echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'"
|
|
exit -1
|
|
}
|
|
[[ ! -e "Dockerfile.solution.${SOLUTION_SUFFIX}" ]] && {
|
|
SOLUTION_SUFFIX=""
|
|
}
|
|
;;
|
|
esac
|
|
|
|
[[ ! -e "Dockerfile${SOLUTION_SUFFIX}" ]] && {
|
|
cat << EOF
|
|
'${OS_DISTRO}' set as OS_DISTRO, but Dockerfile${SOLUTION_SUFFIX} does
|
|
not exist.
|
|
|
|
Using Dockerfile instead.
|
|
EOF
|
|
|
|
SOLUTION_SUFFIX=""
|
|
}
|
|
|
|
export DOCKERFILE="Dockerfile${SOLUTION_SUFFIX}"
|
|
export SOLUTION="Dockerfile.solution${SOLUTION_SUFFIX}"
|
|
|
|
[[ "${SOLUTION}" -nt "${DOCKERFILE}" ]] && {
|
|
echo "${SOLUTION} is newer than ${DOCKERFILE}. Running scripts/build-dockerfile.sh"
|
|
scripts/build-dockerfile.sh || fail "Unable to update ${DOCKERFILE}"
|
|
}
|
|
|
|
scripts/build-image.sh || fail "Unable to build ${DOCKERFILE}"
|