feat: containerize build environment with Docker
- docker/Dockerfile: multi-stage image (linux-builder + windows-builder)
- linux-builder: Ubuntu 22.04 + OpenCV/LibRaw/Qt6 + GTest
- windows-builder: MXE cross-compilation (x86_64-w64-mingw32.static)
with OpenCV4, LibRaw, Qt6 for Windows .exe output
- docker-compose.yml: services for linux, windows-build, shell
- scripts/docker-build.sh: convenience wrapper
- linux|windows|all targets
- --no-cache, --run flags
Usage:
./scripts/docker-build.sh linux --run
./scripts/docker-build.sh windows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
52
docker-compose.yml
Normal file
52
docker-compose.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
name: photo-converter
|
||||
|
||||
services:
|
||||
|
||||
# ── Linux-Build (CLI) ────────────────────────────────────────────────────
|
||||
linux:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile
|
||||
target: linux-builder
|
||||
image: photo-converter:linux
|
||||
volumes:
|
||||
# Input-Bilder aus lokalem import/ Ordner einbinden
|
||||
- ./import:/project/import:ro
|
||||
# Konvertierte Bilder in lokalen output/ Ordner schreiben
|
||||
- ./output:/project/output
|
||||
# Konfiguration überschreibbar
|
||||
- ./config.ini:/project/config.ini:ro
|
||||
command: ["--batch", "--config", "config.ini"]
|
||||
|
||||
# ── Windows Cross-Compilation ────────────────────────────────────────────
|
||||
windows-build:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile
|
||||
target: windows-builder
|
||||
image: photo-converter:windows-builder
|
||||
volumes:
|
||||
# Windows-Build-Ergebnis in lokales dist-windows/ schreiben
|
||||
- ./dist-windows:/project/dist-windows
|
||||
# Nur bauen, kein Entrypoint
|
||||
entrypoint: ["/bin/bash", "-c"]
|
||||
command:
|
||||
- |
|
||||
echo "Windows-Build abgeschlossen."
|
||||
echo "Ergebnis in: /project/dist-windows"
|
||||
ls -lh /project/dist-windows/bin/ 2>/dev/null || echo "(kein bin/ Verzeichnis)"
|
||||
|
||||
# ── Interaktive Shell (Debugging) ────────────────────────────────────────
|
||||
shell:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile
|
||||
target: linux-builder
|
||||
image: photo-converter:linux
|
||||
volumes:
|
||||
- ./import:/project/import:ro
|
||||
- ./output:/project/output
|
||||
- ./config.ini:/project/config.ini:ro
|
||||
entrypoint: ["/bin/bash"]
|
||||
stdin_open: true
|
||||
tty: true
|
||||
Reference in New Issue
Block a user