Initial commit — StreamStack v1
Five-service streaming platform: auth, catalogue, streaming, ingest, thumbnailer. Includes React frontend served by nginx, NATS JetStream event bus, aiobotocore async S3, PyAV video metadata + thumbnail extraction, service-to-service JWT auth, and a full unit + e2e test suite.
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
# 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"]
|
||||
Reference in New Issue
Block a user