Add Docker build environment for KiCad WASM

- Add Dockerfile with ARM64-native emscripten/emsdk:4.0.2-arm64 image
- Add docker-compose.yml with resource limits (10 CPUs, 16GB RAM)
- Add helper scripts (build.sh, shell.sh, entrypoint.sh)
- Add Docker README with usage instructions
- Update playwright.config.ts to find free port dynamically
- Add .dockerignore and .gitignore entries for build artifacts

The Docker environment provides reproducible builds with:
- Named volume for build cache (faster I/O on macOS)
- Resource limits to prevent system lockups
- Interactive shell access for debugging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Viktor Vaczi 2025-12-08 12:07:01 +01:00
commit b5e46a0aba
9 changed files with 262 additions and 3 deletions

28
docker/docker-compose.yml Normal file
View file

@ -0,0 +1,28 @@
services:
kicad-wasm-builder:
build:
context: ..
dockerfile: docker/Dockerfile
container_name: kicad-wasm-builder
# Resource limits (M4 Max: 10 cores, 16GB)
deploy:
resources:
limits:
cpus: '10'
memory: 16G
volumes:
# Source code (read-write for git operations)
- ..:/workspace:cached
# Named volume for build cache (faster than bind mount on macOS)
- kicad-build-cache:/workspace/build-wasm
# Output directory for easy access to final WASM files
- ../output:/workspace/output
# Keep container running for interactive use
stdin_open: true
tty: true
volumes:
kicad-build-cache: