51 lines
1 KiB
Bash
51 lines
1 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
TAG=$1
|
||
|
|
||
|
function require() {
|
||
|
if [ "$1" = "" ]; then
|
||
|
echo "input '$2' required"
|
||
|
print_help
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
function print_help() {
|
||
|
echo "build.sh"
|
||
|
echo ""
|
||
|
echo "Usage:"
|
||
|
echo " build.sh [tag]"
|
||
|
echo ""
|
||
|
echo "Args:"
|
||
|
echo " tag: The tag of the built container"
|
||
|
}
|
||
|
|
||
|
function build_image() {
|
||
|
IMAGE=$1
|
||
|
ARCH=$2
|
||
|
|
||
|
docker build \
|
||
|
--pull \
|
||
|
--no-cache \
|
||
|
-f "Dockerfile.${ARCH}" \
|
||
|
-t "${IMAGE}:${TAG}-${ARCH}" \
|
||
|
-t "${IMAGE}:latest-${ARCH}" \
|
||
|
-t "${IMAGE}:latest" \
|
||
|
.
|
||
|
|
||
|
docker push "${IMAGE}:${TAG}-${ARCH}"
|
||
|
docker push "${IMAGE}:latest-${ARCH}"
|
||
|
docker push "${IMAGE}:latest"
|
||
|
}
|
||
|
|
||
|
require "$TAG" tag
|
||
|
|
||
|
if ! docker run --rm -it arm64v8/alpine:latest /bin/sh -c 'echo "docker is configured correctly"'; then
|
||
|
echo "docker is not configured to run on qemu-emulated architectures, fixing will require sudo"
|
||
|
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||
|
fi
|
||
|
|
||
|
set -xe
|
||
|
|
||
|
build_image asonix/murmur arm64v8
|