Files
negative-converter/docker-compose.yml
Christoph K. 0cbac0ff12 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>
2026-03-14 13:17:01 +01:00

53 lines
1.9 KiB
YAML

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