chore: update Dockerfile to use Python 3.12 and improve dependency installation

This commit is contained in:
Mateusz Hajder
2025-08-12 10:18:52 +02:00
parent 5f07157c9b
commit f027760ac5
3 changed files with 110 additions and 11 deletions

View File

@@ -1,16 +1,38 @@
FROM python:3.9.18-slim
FROM python:3.12-alpine3.22 AS builder
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && apt-get install -y git git-lfs
RUN pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir uv
WORKDIR /usr/src/app
WORKDIR /app
COPY release-requirements.txt .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r release-requirements.txt
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=requirements.txt,target=requirements.txt \
--mount=type=bind,source=release-requirements.txt,target=release-requirements.txt \
uv venv \
&& uv pip install -r release-requirements.txt
COPY . .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install .
ENTRYPOINT [ "github-backup" ]
RUN --mount=type=cache,target=/root/.cache/uv \
uv pip install .
FROM python:3.12-alpine3.22
ENV PYTHONUNBUFFERED=1
RUN apk add --no-cache \
ca-certificates \
git \
git-lfs \
&& addgroup -g 1000 appuser \
&& adduser -D -u 1000 -G appuser appuser
COPY --from=builder --chown=appuser:appuser /app /app
WORKDIR /app
USER appuser
ENV PATH="/app/.venv/bin:$PATH"
ENTRYPOINT ["github-backup"]