docspell/docker/dockerfiles/build.sh
2022-05-21 00:44:17 +02:00

77 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
if [ -z "$1" ]; then
echo "Please specify a version"
exit 1
fi
version="$1"
if [[ $version == v* ]]; then
version="${version:1}"
fi
push=""
if [ -z "$2" ] || [ "$2" == "--push" ]; then
push="$2"
if [ ! -z "$push" ]; then
echo "Running with $push !"
fi
elif [ "$2" == "--load" ]; then
push="$2"
else
echo "Don't understand second argument: $2"
exit 1
fi
if ! docker buildx version > /dev/null; then
echo "The docker buildx command is required."
echo "See: https://github.com/docker/buildx#binary-release"
exit 1
fi
set -e
cd "$(dirname "$0")"
trap "{ docker buildx rm docspell-builder; }" EXIT
platforms=${PLATFORMS:-"linux/amd64,linux/arm64,linux/arm/v7"}
docker buildx create --name docspell-builder --use
case $version in
*SNAPSHOT)
echo ">>>> Building nightly images for $version <<<<<"
url_base="https://github.com/eikek/docspell/releases/download/nightly"
echo "============ Building Restserver ============"
docker buildx build \
--platform="$platforms" $push \
--build-arg restserver_url="$url_base/docspell-restserver-$version.zip" \
--tag docspell/restserver:nightly \
-f restserver.dockerfile .
echo "============ Building Joex ============"
docker buildx build \
--platform="$platforms" $push \
--build-arg joex_url="$url_base/docspell-joex-$version.zip" \
--tag docspell/joex:nightly \
-f joex.dockerfile .
;;
*)
echo ">>>> Building release images for $version <<<<<"
echo "============ Building Restserver ============"
docker buildx build \
--platform="$platforms" $push \
--build-arg version=$version \
--tag docspell/restserver:v$version \
--tag docspell/restserver:latest \
-f restserver.dockerfile .
echo "============ Building Joex ============"
docker buildx build \
--platform="$platforms" $push \
--build-arg version=$version \
--tag docspell/joex:v$version \
--tag docspell/joex:latest \
-f joex.dockerfile .
esac