#!/bin/bash set -e DOCKER_USER="blackwhitebear8" REPO_NAME="nginx-quic-certbot" echo "Checking if you are logged in to Docker Hub..." if ! docker system info | grep -q "Username"; then echo "Not logged in. Starting 'docker login'..." docker login else echo "Logged in as $(docker system info | grep "Username" | awk '{print $2}')" fi echo "" read -p "Enter the version/tag (e.g., 1.0.0 or latest): " VERSION if [ -z "$VERSION" ]; then echo "Error: No version specified. Script aborted." exit 1 fi FULL_IMAGE_NAME="$DOCKER_USER/$REPO_NAME:$VERSION" if ! docker buildx inspect multiarch-builder > /dev/null 2>&1; then echo "Creating new buildx builder 'multiarch-builder'..." docker buildx create --use --name multiarch-builder else echo "Using existing builder 'multiarch-builder'..." docker buildx use multiarch-builder fi TAG_ARGS="-t $FULL_IMAGE_NAME" if [ "$VERSION" != "latest" ]; then echo "Adding extra tag 'latest'..." TAG_ARGS="$TAG_ARGS -t $DOCKER_USER/$REPO_NAME:latest" fi echo "" echo "Building and pushing for linux/amd64 and linux/arm64..." echo "This may take a while..." docker buildx build \ --platform linux/amd64,linux/arm64 \ $TAG_ARGS \ --push \ . echo "" echo "=======================================================" echo "Done! Your multi-arch image is now on Docker Hub:" echo "$FULL_IMAGE_NAME" echo "Architectures: AMD64 & ARM64" echo "======================================================="