generated from coulomb/repo-seed
Three-stage build:
- assets: Node 22 + Vite + Tailwind CSS 4 → static/dist/main.css
- python-deps: uv sync --frozen --no-dev against pyproject + uv.lock,
with the issue-core path dependency satisfied via a BuildKit
named context (--build-context issue-core=...)
- runtime: python:3.12-slim-bookworm + libpq5 + curl, non-root 'app'
user, collectstatic at build time, gunicorn on :8000,
/health/ HEALTHCHECK every 30s
Adds gunicorn>=22 to project dependencies (was missing).
Build:
docker build --build-context issue-core=/home/worsch/issue-core \
-t gitea.coulomb.social/coulomb/vergabe-teilnahme:<tag> .
Smoke-verified: container reports (healthy) and /health/ returns
{"status": "ok"} without a database connection.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
47 lines
1.0 KiB
TOML
47 lines
1.0 KiB
TOML
[project]
|
|
name = "vergabe-teilnahme"
|
|
version = "0.1.0"
|
|
description = "Ausschreibungs- und Teilnahme-Management-System"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"django>=5.2",
|
|
"psycopg[binary]>=3.2",
|
|
"django-storages>=1.14",
|
|
"whitenoise>=6.7",
|
|
"python-decouple>=3.8",
|
|
"dj-database-url>=2.1",
|
|
"issue-core @ file:///home/worsch/issue-core",
|
|
"gunicorn>=22.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest-django>=4.8",
|
|
"pytest-cov>=5.0",
|
|
"factory-boy>=3.3",
|
|
"ruff>=0.4",
|
|
"mypy>=1.10",
|
|
"django-stubs>=5.0",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
DJANGO_SETTINGS_MODULE = "vergabe_teilnahme.settings.dev"
|
|
python_files = ["test_*.py", "tests.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = "--tb=short -q"
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "N", "UP"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
plugins = ["mypy_django_plugin.main"]
|
|
|
|
[tool.django-stubs]
|
|
django_settings_module = "vergabe_teilnahme.settings.dev"
|