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>
This commit is contained in:
William Valentin
2025-11-02 01:39:10 -08:00
parent 6abf1735c9
commit 9f650fa7d4
8 changed files with 746 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
# Adopt-a-Street Makefile
# Provides convenient commands for building and running the application
.PHONY: help install build run dev test clean lint format
.PHONY: help install build run dev test clean lint format docker-multiarch docker-multiarch-verify
# Default target
help:
@@ -136,6 +136,22 @@ docker-run:
docker run -d -p 5000:5000 --name backend adopt-a-street-backend
@echo "Docker containers running!"
# Multi-Architecture Docker
docker-multiarch-setup:
@echo "Setting up multi-architecture Docker builder..."
./scripts/setup-multiarch-builder.sh
docker-multiarch-build:
@echo "Building and pushing multi-architecture Docker images..."
./scripts/build-multiarch.sh
docker-multiarch-verify:
@echo "Verifying multi-architecture Docker images..."
./scripts/verify-multiarch.sh
docker-multiarch: docker-multiarch-setup docker-multiarch-build docker-multiarch-verify
@echo "Multi-architecture Docker workflow complete!"
# Database (for development)
db-setup:
@echo "Setting up MongoDB..."
@@ -164,4 +180,12 @@ quick-start: install env-setup db-setup
@echo "2. Run 'make dev' to start development servers"
@echo "3. Visit http://localhost:3000 to see the application"
@echo ""
@echo "For more commands, run 'make help'"
@echo "For more commands, run 'make help'"
@echo ""
@echo "Docker Commands:"
@echo " docker-build Build single-architecture Docker images"
@echo " docker-run Run Docker containers"
@echo " docker-multiarch-setup Setup multi-architecture builder"
@echo " docker-multiarch-build Build and push multi-arch images"
@echo " docker-multiarch-verify Verify multi-arch images"
@echo " docker-multiarch Complete multi-arch workflow"