65 lines
1.6 KiB
Bash
Executable File
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 ""
|
|
|