This commit is contained in:
2026-05-23 06:42:44 +02:00
parent f95de1482d
commit 739ffafedd
2 changed files with 24 additions and 7 deletions

View File

@@ -2,11 +2,12 @@
#
# Build:
# docker build \
# --build-context issue-core=/home/worsch/issue-core \
# --secret id=gitea_pypi_user,env=GITEA_PYPI_USER \
# --secret id=gitea_pypi_password,env=GITEA_PYPI_TOKEN \
# -t gitea.coulomb.social/coulomb/vergabe-teilnahme:<tag> .
#
# The `issue-core` named context is required because pyproject.toml has
# a path dependency on a sibling repo; uv.lock pins it as "../issue-core".
# The optional secrets let uv authenticate to the Gitea Python package
# registry when resolving issue-core.
# ─── Stage 1 ─── Vite + Tailwind asset build ────────────────────────────────
@@ -38,10 +39,19 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
COPY --from=ghcr.io/astral-sh/uv:0.5.11 /uv /usr/local/bin/uv
COPY --from=issue-core . /issue-core/
WORKDIR /app
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev --no-install-project
RUN --mount=type=secret,id=gitea_pypi_user,required=false \
--mount=type=secret,id=gitea_pypi_password,required=false \
sh -eu -c '\
if [ -f /run/secrets/gitea_pypi_user ]; then \
export UV_INDEX_GITEA_USERNAME="$(cat /run/secrets/gitea_pypi_user)"; \
fi; \
if [ -f /run/secrets/gitea_pypi_password ]; then \
export UV_INDEX_GITEA_PASSWORD="$(cat /run/secrets/gitea_pypi_password)"; \
fi; \
uv sync --no-dev --no-install-project \
'
# ─── Stage 3 ─── Runtime image ──────────────────────────────────────────────
@@ -60,7 +70,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
WORKDIR /app
COPY --from=python-deps /issue-core /issue-core
COPY --from=python-deps /app/.venv ./.venv
COPY --chown=app:app manage.py pyproject.toml ./

View File

@@ -10,10 +10,18 @@ dependencies = [
"whitenoise>=6.7",
"python-decouple>=3.8",
"dj-database-url>=2.1",
"issue-core @ file:///home/worsch/issue-core",
"issue-core>=0.2,<0.3",
"gunicorn>=22.0",
]
[tool.uv.sources]
issue-core = { index = "gitea" }
[[tool.uv.index]]
name = "gitea"
url = "https://gitea.coulomb.social/api/packages/coulomb/pypi/simple/"
explicit = true
[dependency-groups]
dev = [
"pytest-django>=4.8",