# .dockerignore # # Primary purpose: keep the .git directory out of the build context and # the published image. .git carries the full commit history (author # emails, and anything ever committed then removed). The Dockerfile # copies selectively today (COPY src/, COPY pyproject.toml, ...), so .git # is not shipped currently -- this file makes that guarantee robust: a # future `COPY . .`, or a local build from a stale clone, would otherwise # embed the entire history into the image. # # Only files the Dockerfile explicitly COPYs are needed in the context; # everything below is either never copied or is regenerated in-image. # ── Version control ────────────────────────────────────────────── .git .gitignore .gitattributes .github # ── Python bytecode / caches / virtualenvs ─────────────────────── **/__pycache__/ **/*.py[cod] **/*$py.class .venv/ venv/ **/.pytest_cache/ **/.ruff_cache/ **/.mypy_cache/ .coverage htmlcov/ # ── Node (installed fresh in the image; the local copy is ~300 MB) ─ **/node_modules/ # ── Secrets, local databases, logs — never belong in an image ──── **/.env **/.env.local **/.env.*.local **/*.log **/*.db **/*.sqlite **/*.sqlite3 # ...but the checked-in defaults template IS part of the source the # build copies via `COPY src/` -- keep it. !**/.env.template # ── Editor / OS cruft ──────────────────────────────────────────── .idea/ .vscode/ .DS_Store