You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All settings in `app/settings.py` are read from environment variables via `os.environ.get()` with sensible defaults. A `.env` file in the project root is loaded automatically by `python-dotenv`. See `.env.example` for all available options.
-**Dockerfile** — Single-stage build using `ghcr.io/astral-sh/uv:python3.10-alpine`. Runs as non-root `flaskblog` user (UID 1000). Only production deps installed (`uv sync --frozen --no-dev --no-cache`).
82
+
-**.dockerignore** — Whitelist approach: excludes everything (`*`), then includes only `app/` minus non-runtime files (`.venv`, `__pycache__`, `.ruff_cache`, `scripts`, `log`).
83
+
-**Environment variables** — Not baked into the image. Passed at runtime via `docker run --env-file .env` (handled automatically by `make docker-run` if `.env` exists).
84
+
-**Example DB** — `app/instance/flaskblog.db` is included in the image so the app starts with sample data.
85
+
-**Ports** — Container binds to `0.0.0.0:1283` (overrides Flask's default `localhost` via `APP_HOST` env var).
0 commit comments