feat(docker): Dockerfile (CUDA+python3.12) + compose with GPU reservation #27

Merged
goldstein merged 1 commit from feat/dockerize into main 2026-04-18 10:15:45 +00:00
Owner

Task 5.1 of MVP plan. CUDA runtime base, python3.12, uv-managed deps, GPU reservation mirroring immich-ml. Monitoring dashboard labels + backup opt-in. No local docker build verification here (Surya/torch CUDA wheels need Linux/CUDA; will be built on the server on first deploy).

CI trigger is flaky — not waiting on it.

Task 5.1 of MVP plan. CUDA runtime base, python3.12, uv-managed deps, GPU reservation mirroring immich-ml. Monitoring dashboard labels + backup opt-in. No local docker build verification here (Surya/torch CUDA wheels need Linux/CUDA; will be built on the server on first deploy). CI trigger is flaky — not waiting on it.
goldstein added 1 commit 2026-04-18 10:15:36 +00:00
feat(docker): Dockerfile (CUDA+python3.12) + compose with GPU reservation
All checks were successful
tests / test (push) Successful in 1m13s
tests / test (pull_request) Successful in 1m10s
4646180942
- nvidia/cuda:12.4 runtime base matches the deploy host's driver stack
  (immich-ml / monitoring use the same pattern).
- python3.12 via deadsnakes (Ubuntu 22.04 ships 3.10 only).
- System deps: libmagic1 (python-magic), libgl1/libglib2 (PIL + PyMuPDF
  headless), curl (post-receive /healthz probe), ca-certs (httpx TLS).
- uv sync --frozen --no-dev --extra ocr installs prod + Surya/torch;
  dev tooling stays out of the image.
- CMD runs `alembic upgrade head && uvicorn ix.app:create_app` — idempotent.
- Compose: single service, port 8994, GPU reservation mirroring immich-ml,
  labels for monitoring dashboard auto-discovery + backup opt-in.
- host.docker.internal:host-gateway lets ix reach the host's Ollama and
  postgis containers (same pattern mammon uses).

Task 5.1 of MVP plan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
goldstein merged commit 3c7d607776 into main 2026-04-18 10:15:45 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: goldstein/infoxtractor#27
No description provided.