mirror of
https://git.burble.com/burble.dn42/dn42regsrv.git
synced 2024-02-26 20:28:04 +01:00
66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
##########################################################################
|
|
echo "Building dn42regsrv container"
|
|
|
|
# find the source directory
|
|
SCRIPTPATH="$(cd "$(dirname "$0")" ; pwd -P)"
|
|
SOURCEPATH="$(cd "${SCRIPTPATH}/../"; pwd -P)"
|
|
echo "Source is in: ${SOURCEPATH}"
|
|
|
|
##########################################################################
|
|
|
|
DEPS='git'
|
|
B=$(which buildah)
|
|
|
|
# initialise container
|
|
c=$(buildah from --name dn42regsrv-working docker.io/debian:buster)
|
|
|
|
##########################################################################
|
|
|
|
# install dependencies and initialise directories
|
|
$B run $c -- bash <<EOF
|
|
apt-get -y update
|
|
apt-get -y install --no-install-recommends $DEPS
|
|
rm -r /var/lib/apt/lists
|
|
EOF
|
|
|
|
# mount the container
|
|
m=$($B mount $c)
|
|
|
|
# create directories and copy the web app
|
|
mkdir "$m/app" "$m/data" "$m/registry" "$m/data/ssh"
|
|
|
|
# web app
|
|
cp -r "$SOURCEPATH/StaticRoot" "$m/data/webapp"
|
|
|
|
# add the entrypoint.sh script
|
|
cp "$SOURCEPATH/contrib/entrypoint.sh" "$m/app"
|
|
chmod +x "$m/app"
|
|
|
|
# build the binary directly in to the container
|
|
pushd "$m/app"
|
|
"$SOURCEPATH/contrib/build.sh"
|
|
popd
|
|
|
|
# unmount the container
|
|
$B unmount $c
|
|
|
|
# configure
|
|
buildah config \
|
|
--author="Simon Marsh" \
|
|
--workingdir='/data/registry' \
|
|
--cmd='/app/entrypoint.sh' \
|
|
$c
|
|
|
|
##########################################################################
|
|
# finally create the image
|
|
|
|
echo "Committing image ..."
|
|
i=$($B commit --squash $c dn42regsrv)
|
|
|
|
# clean up
|
|
$B rm $c
|
|
|
|
##########################################################################
|
|
# end of file
|