57 lines
2.1 KiB
Docker
57 lines
2.1 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
ARG JELLYFIN_IMAGE=jellyfin/jellyfin:10.11.11@sha256:aefb67e6a7ff1debdd154a78a7bbb780fd0c873d8639210a7f6a2016ad2b35db
|
|
|
|
FROM ${JELLYFIN_IMAGE} AS seed
|
|
|
|
USER root
|
|
RUN apt-get update \
|
|
&& apt-get install --yes --no-install-recommends ca-certificates python3 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /opt/plezy-demo
|
|
COPY scripts/maestro_fixtures.py scripts/maestro_real_jellyfin.py scripts/prepare_maestro_media.py ./
|
|
COPY .maestro/jellyfin-demo/seed.sh ./seed.sh
|
|
|
|
ARG PLEZY_DEMO_MEDIA_BASE_URL=https://demo-files.plezy.app/media-samples/
|
|
ARG PLEZY_DEMO_MEDIA_REVISION=2026-07-14
|
|
ARG PLEZY_DEMO_MEDIA_DURATION=300
|
|
RUN test -n "${PLEZY_DEMO_MEDIA_REVISION}" \
|
|
&& python3 maestro_real_jellyfin.py download-codecs \
|
|
--base-url "${PLEZY_DEMO_MEDIA_BASE_URL}" \
|
|
--output-dir /tmp/plezy-codecs \
|
|
&& PATH="/usr/lib/jellyfin-ffmpeg:${PATH}" python3 prepare_maestro_media.py \
|
|
/tmp/plezy-codecs /tmp/plezy-codecs-prepared \
|
|
--duration "${PLEZY_DEMO_MEDIA_DURATION}" \
|
|
--extend av1_opus_ass_srt.mkv \
|
|
--extend h264_eac3_multisub.mkv \
|
|
--extend hevc10_flac_ass.mkv \
|
|
&& python3 maestro_real_jellyfin.py prepare \
|
|
--output-dir /media \
|
|
--codec-source-dir /tmp/plezy-codecs-prepared \
|
|
--include-codecs \
|
|
&& rm -rf /tmp/plezy-codecs /tmp/plezy-codecs-prepared __pycache__ \
|
|
&& chmod -R a=rX /media
|
|
|
|
RUN ./seed.sh
|
|
|
|
FROM ${JELLYFIN_IMAGE}
|
|
|
|
LABEL org.opencontainers.image.title="Plezy Jellyfin demo server" \
|
|
org.opencontainers.image.description="Ready-to-run Jellyfin server with Plezy's deterministic codec demo catalog" \
|
|
org.opencontainers.image.source="https://github.com/edde746/plezy"
|
|
|
|
COPY --from=seed /media /media
|
|
COPY --from=seed /opt/plezy-demo/seed-config /opt/plezy-demo/seed-config
|
|
COPY .maestro/jellyfin-demo/entrypoint.sh /usr/local/bin/plezy-demo-entrypoint
|
|
|
|
RUN chmod 0755 /usr/local/bin/plezy-demo-entrypoint \
|
|
&& chmod -R a=rX /media /opt/plezy-demo/seed-config
|
|
|
|
ENV TZ=UTC \
|
|
JELLYFIN_PublishedServerUrl=http://localhost:8096
|
|
|
|
EXPOSE 8096
|
|
STOPSIGNAL SIGTERM
|
|
ENTRYPOINT ["/usr/local/bin/plezy-demo-entrypoint"]
|