Skip to content

chore: Dockerfile (multi-stage, Python 3.14, non-root, healthcheck)#34

Merged
constk merged 1 commit into
developfrom
feat/6-dockerfile
Apr 26, 2026
Merged

chore: Dockerfile (multi-stage, Python 3.14, non-root, healthcheck)#34
constk merged 1 commit into
developfrom
feat/6-dockerfile

Conversation

@constk
Copy link
Copy Markdown
Owner

@constk constk commented Apr 26, 2026

Summary

  • Port Teller's multi-stage Dockerfile, bump base from python:3.12-slimpython:3.14-slim.
  • Rename runtime user tellerapp; drop the COPY data/ line (template has no data/); update healthcheck path from /api/health/api/v1/health to match the template's API prefix.
  • Builder runs uv sync --frozen --no-dev; runtime carries only .venv + src/. No uv, no pip cache, no build tools, no dev deps in the runtime image.
  • Healthcheck uses stdlib urllib.request (no curl in image).

Closes #6.

Test plan

🤖 Generated with Claude Code

Port Teller's multi-stage Dockerfile, bump base to python:3.14-slim. Builder
materialises the venv via uv sync --frozen --no-dev; runtime copies only the
venv + src/ onto a fresh slim base, runs as non-root user `app`. HEALTHCHECK
hits /api/v1/health (template's API prefix). Drop the data/ COPY — template has
no data dir. UV_PYTHON_DOWNLOADS=never + UV_PYTHON_PREFERENCE=only-system pin
to the system Python so pyvenv.cfg symlinks survive the stage handover.

Closes #6

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@constk constk merged commit 5b10276 into develop Apr 26, 2026
@constk constk deleted the feat/6-dockerfile branch April 26, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant