Files
vergabe-teilnahme/pyproject.toml
tegwick 483a4dfd3b Add multi-stage Dockerfile for container deployment
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>
2026-05-18 23:32:51 +02:00

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"