# syntax=docker/dockerfile:1.4 ARG SERVICE=streaming # ── Stage 1: Build ──────────────────────────────────────────────────────────── FROM git.unkin.net/unkin/almalinux9-base:20260308 AS builder RUN dnf install -y jellyfin-ffmpeg-bin && dnf clean all WORKDIR /app COPY pyproject.toml uv.lock* ./ COPY src/ src/ RUN uv sync --frozen --no-dev --python 3.12 # ── Stage 2: Runtime ────────────────────────────────────────────────────────── FROM git.unkin.net/unkin/almalinux9-base:20260308 AS runtime RUN dnf install -y jellyfin-ffmpeg-bin && dnf clean all WORKDIR /app COPY --from=builder /app/.venv /app/.venv COPY --from=builder /app/src /app/src ARG SERVICE=streaming ENV SERVICE=${SERVICE} \ PATH="/app/.venv/bin:$PATH" \ PYTHONPATH="/app/src" EXPOSE 8000 COPY --chmod=755 scripts/entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]