#!/bin/bash # SPORE Multiarch Build Setup Script # This script sets up Docker buildx for multiarch image building set -e echo "🚀 SPORE Multiarch Build Setup" echo "================================" echo "" # Check if buildx is installed if ! command -v docker &> /dev/null; then echo "❌ Docker is not installed. Please install Docker first." exit 1 fi echo "✅ Docker is installed" # Install QEMU emulation for cross-architecture builds echo "" echo "📦 Installing QEMU emulation..." docker run --rm --privileged tonistiigi/binfmt:latest --install all echo "✅ QEMU emulation installed" # Check if multiarch builder already exists EXISTING_BUILDER=$(docker buildx ls --format '{{.Name}}' | grep -w multiarch || true) if [ -z "$EXISTING_BUILDER" ]; then echo "" echo "📦 Creating multiarch builder..." docker buildx create --name multiarch --use echo "✅ Multiarch builder created" else echo "" echo "✅ Multiarch builder already exists" echo "📦 Switching to multiarch builder..." docker buildx use multiarch fi echo "" echo "🔧 Inspecting builder..." docker buildx inspect --bootstrap echo "" echo "✅ Multiarch build setup complete!" echo "" echo "Available platforms:" docker buildx inspect --bootstrap | grep "Platform:" echo "" echo "📚 Usage:" echo " Build and push all multiarch images:" echo " cd spore-deployment" echo " make push-multiarch" echo "" echo " Build without pushing:" echo " make build-multiarch" echo "" echo " Build with custom tag:" echo " make push-multiarch IMAGE_TAG=v1.0.0" echo ""