Files
adopt-a-street/scripts/setup-multiarch-builder.sh
William Valentin 9f650fa7d4 feat: add multi-architecture Docker build setup
- Add Docker BuildKit builder setup for AMD64 and ARM64 platforms
- Update backend and frontend Dockerfiles with platform flags
- Create comprehensive build scripts for multi-arch workflows
- Add verification script to test multi-architecture images
- Update Makefile with multi-arch Docker targets
- Add detailed documentation for multi-architecture setup

This enables building Docker images that work on both development machines
(AMD64) and Raspberry Pi cluster (ARM64) with automatic platform selection.

🤖 Generated with [AI Assistant]

Co-Authored-By: AI Assistant <noreply@ai-assistant.com>
2025-11-02 01:39:10 -08:00

40 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Multi-architecture Docker BuildKit builder setup script
# Sets up buildx for AMD64 and ARM64 platforms
set -e
echo "🔧 Setting up multi-architecture Docker BuildKit builder..."
# Check if docker buildx is available
if ! docker buildx version >/dev/null 2>&1; then
echo "❌ Docker buildx is not available. Please install Docker BuildKit."
exit 1
fi
# Create multi-architecture builder if it doesn't exist
BUILDER_NAME="multiarch-builder"
if docker buildx ls | grep -q "$BUILDER_NAME"; then
echo "✅ Builder '$BUILDER_NAME' already exists"
else
echo "📦 Creating new multi-architecture builder..."
docker buildx create --name "$BUILDER_NAME" --driver docker-container --bootstrap
echo "✅ Builder '$BUILDER_NAME' created successfully"
fi
# Use the multi-architecture builder
docker buildx use "$BUILDER_NAME"
# Verify platforms
echo "🔍 Verifying supported platforms..."
docker buildx inspect --bootstrap
echo "✅ Multi-architecture builder setup complete!"
echo ""
echo "Supported platforms:"
docker buildx ls | grep "$BUILDER_NAME" -A 1 | grep "PLATFORMS" || echo " - linux/amd64"
echo " - linux/arm64"
echo ""
echo "You can now build multi-architecture images using:"
echo " docker buildx build --platform linux/amd64,linux/arm64 -t your-image:tag --push ."