72 lines
1.5 KiB
Bash
Executable File
72 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Bring in the variables from SOLUTION file, supporting
|
|
# nested substitution
|
|
. SOLUTION
|
|
|
|
VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION))
|
|
for var in ${VARS[@]}; do
|
|
export ${var}
|
|
done
|
|
|
|
RELEASE_INFO=${RELEASE_INFO:-N/A}
|
|
[[ "${RELEASE_INFO}" == "N/A" ]] && {
|
|
TAG=${TAG:-test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d)}
|
|
} || {
|
|
TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}}
|
|
}
|
|
|
|
[[ -d "templates/${OS_DISTRO}" ]] || {
|
|
echo "Unrecognized OS_DISTRO: '${OS_DISTRO}'"
|
|
exit -1
|
|
}
|
|
|
|
if [[ -e "Dockerfile.solution.${OS_DISTRO}-${OS_RELEASE}" ]]; then
|
|
SOLUTION_SUFFIX=".${OS_DISTRO}-${OS_RELEASE}"
|
|
elif [[ -e "Dockerfile.solution.${OS_DISTRO}" ]]; then
|
|
SOLUTION_SUFFIX=".${OS_DISTRO}"
|
|
else
|
|
SOLUTION_SUFFIX=""
|
|
fi
|
|
|
|
[[ "${SOLUTION_SUFFIX}" == "" ]] && {
|
|
cat << EOF
|
|
|
|
The following Dockerfile.solutions were checked, but do not exist:
|
|
|
|
* Dockerfile.solution.${OS_DISTRO}
|
|
* Dockerfile.solution.${OS_DISTRO}-${OS_RELEASE}
|
|
|
|
Using 'Dockerfile.solution' as default.
|
|
|
|
EOF
|
|
}
|
|
|
|
export DOCKERFILE="Dockerfile${SOLUTION_SUFFIX}"
|
|
export SOLUTION="Dockerfile.solution${SOLUTION_SUFFIX}"
|
|
|
|
echo "Building '${SOLUTION}' image from '${DOCKERFILE}'"
|
|
|
|
|
|
docker build -t ${CONTAINER}:${TAG} -f ${DOCKERFILE} . $* || {
|
|
cat << EOM
|
|
|
|
Building docker image from ${DOCKERFILE} failed.
|
|
|
|
EOM
|
|
exit -1
|
|
}
|
|
|
|
docker tag ${CONTAINER}:${TAG} ${CONTAINER} || {
|
|
echo "Unable to tag docker image"
|
|
exit -1
|
|
}
|
|
|
|
cat << EOM
|
|
|
|
${DOCKERFILE} was built and locally tagged as ${CONTAINER}:${TAG}
|
|
|
|
See 'scripts/push-image.sh' for information on pushing this tag to Harbor.
|
|
|
|
EOM
|