FROM ghcr.io/astral-sh/uv:0.12.3-python3.11-trixie-slim AS builder ENV UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy WORKDIR /app COPY pyproject.toml uv.lock README.md ./ COPY src ./src RUN uv sync --frozen --no-dev --no-editable FROM docker.io/library/python:3.11-slim-trixie AS runtime # Debian security updates intentionally determine the exact package revisions. # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --yes ca-certificates ffmpeg \ && rm -rf /var/lib/apt/lists/* \ && groupadd --gid 10001 app \ && useradd --uid 10001 --gid app --home-dir /app --no-create-home app WORKDIR /app COPY --from=builder --chown=app:app /app/.venv /app/.venv RUN mkdir --parents /app/data && chown app:app /app/data ENV DATABASE_PATH=/app/data/favorites.sqlite3 \ PATH="/app/.venv/bin:$PATH" \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 VOLUME ["/app/data"] USER 10001:10001 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD ["python", "-c", "import os; os.kill(1, 0)"] ENTRYPOINT ["tg-favorite-stickers"]