- 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>
40 lines
1.3 KiB
Bash
Executable File
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 ." |