#!/bin/bash # 2023-08-27 clear cd "$(dirname "$0")" || exit 1 # Docker image name and version IMAGE_BASE=zogg/watchtower IMAGE_NAME_LATEST=${IMAGE_BASE}:latest # Prepare for cross compile export DOCKER_DEFAULT_PLATFORM=linux/amd64 export DOCKER_CLI_EXPERIMENTAL=enabled docker run --privileged --rm tonistiigi/binfmt --install all if [ $? -eq 0 ]; then echo "* binfmt done!" # Build docker buildx build \ --no-cache \ --network host \ --compress \ --output=type=docker \ --pull \ --build-arg CONCURRENCY=$(nproc) \ \ --platform=linux/amd64 \ \ -t "${IMAGE_NAME_LATEST}" \ . 2>&1 | tee build.log if [ $? -eq 0 ]; then echo "* buildx done!" # Tag docker tag ${IMAGE_NAME_LATEST} dockerregistry.domain.com/${IMAGE_NAME_LATEST} if [ $? -eq 0 ]; then echo "* tag done!" # Push docker image push dockerregistry.domain.com/${IMAGE_NAME_LATEST} if [ $? -eq 0 ]; then echo "* push done!" else echo "* push failed!" fi else echo "* tag failed!" fi else echo "* buildx failed!" fi else echo "* binfmt failed!" fi exit 0