Files
spore-deployment/scripts/setup-multiarch.sh
2025-10-27 21:38:20 +01:00

65 lines
1.6 KiB
Bash
Executable File

#!/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 ""