mirror of
https://gitlab.kit.edu/kit/scc/sys/mail/exim-encrypt-dlfunc.git
synced 2025-12-06 07:33:55 +01:00
76 lines
1.8 KiB
Bash
Executable File
76 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# shellcheck disable=SC1004
|
|
|
|
set -e
|
|
|
|
images=('debian:buster|buster' 'debian:bullseye|bullseye' 'ubuntu:focal|focal')
|
|
|
|
BASENAME='exim-encrypt-dlfunc-build'
|
|
TAG='latest'
|
|
REGISTRY='localhost:5000'
|
|
USERNAME='nobody'
|
|
PASSWORD='password'
|
|
|
|
while getopts "r:u:p:b:t:" OPTION; do
|
|
case $OPTION in
|
|
r)
|
|
REGISTRY="${OPTARG}"
|
|
;;
|
|
u)
|
|
USERNAME="${OPTARG}"
|
|
;;
|
|
p)
|
|
PASSWORD="${OPTARG}"
|
|
;;
|
|
b)
|
|
BASENAME="${OPTARG}"
|
|
;;
|
|
t)
|
|
TAG="${OPTARG}"
|
|
;;
|
|
*)
|
|
echo "Usage: $0 [OPTIONS]"
|
|
echo
|
|
echo "Options:"
|
|
echo " -r <registry> (default: \"${REGISTRY}\")"
|
|
echo " -u <username> (default: \"${USERNAME}\")"
|
|
echo " -p <password> (default: \"${PASSWORD}\")"
|
|
echo " -b <basename> (default: \"${BASENAME}\")"
|
|
echo " -t <tag> (default: \"${TAG}\")"
|
|
echo
|
|
exit 127
|
|
esac
|
|
done
|
|
|
|
REGHOST="$(echo "${REGISTRY}" | cut -d/ -f1)"
|
|
if [ "${REGISTRY}" != "none" ]; then
|
|
echo "🔑 Logging into »${REGHOST}«"
|
|
if ! buildah login --get-login "${REGHOST}" > /dev/null 2> /dev/null; then
|
|
buildah login --password "${PASSWORD}" --username "${USERNAME}" "${REGHOST}"
|
|
fi
|
|
fi
|
|
|
|
for i in "${images[@]}"; do
|
|
basectr=$(echo "${i}" | cut -d'|' -f1)
|
|
name=$(echo "${i}" | cut -d'|' -f2)
|
|
|
|
IMAGENAME="${BASENAME}-${name}"
|
|
IIDFILE=".${IMAGENAME}.iid"
|
|
IMAGETAG="${BASENAME}-${name}:${TAG}"
|
|
TARGET="${REGISTRY}/${IMAGETAG}"
|
|
echo "🔨 Assembling »${IMAGENAME}«"
|
|
buildah build-using-dockerfile \
|
|
--from "${basectr}" \
|
|
--format docker \
|
|
--iidfile "${IIDFILE}" \
|
|
--tag "${IMAGETAG}"
|
|
|
|
if [ "${REGISTRY}" != "none" ]; then
|
|
echo "🚀 Pushing »${IMAGETAG}« to »${TARGET}«"
|
|
buildah push "${IMAGETAG}" "${TARGET}"
|
|
echo "✅ Finished »${BASENAME}«"
|
|
fi
|
|
|
|
rm -f "${IIDFILE}"
|
|
done
|