test-image.sh publishes the plugin on the host, bakes it into a stock jellyfin/jellyfin image via Dockerfile.test, and runs it on :8096, with optional egress through a LAN gateway (DOCKER_GATEWAY, e.g. the Swiss VPN box) for geo-blocked streams. JELLYFIN_TAG (default 12) selects the image and the matching plugin build: 10.9/10.10 -> net8.0, 10.11 -> net9.0, 12 -> net10.0, with the generated meta.json targetAbi to match. Images are tagged per version (srfplay-test:<tag>) so several can coexist. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
24 lines
996 B
Docker
24 lines
996 B
Docker
# Test image: stock Jellyfin with a prebuilt SRF Play plugin baked in.
|
|
#
|
|
# This does NOT build the plugin — build it first on the host (fast, warm
|
|
# NuGet cache), then this image is just one small COPY on top of stock
|
|
# Jellyfin, so it builds in seconds.
|
|
#
|
|
# ./test-image.sh # builds plugin + image, runs it
|
|
#
|
|
# or manually:
|
|
# dotnet publish Jellyfin.Plugin.SRFPlay/Jellyfin.Plugin.SRFPlay.csproj \
|
|
# -c Release -f net10.0 --no-self-contained -o ./.test-plugin/SRFPlay
|
|
# docker build -f Dockerfile.test --build-arg JELLYFIN_TAG=12 -t srfplay-test .
|
|
# docker run --rm -p 8096:8096 srfplay-test
|
|
#
|
|
# JELLYFIN_TAG must match the framework the plugin was published for;
|
|
# test-image.sh picks both from one setting.
|
|
|
|
ARG JELLYFIN_TAG=12
|
|
FROM jellyfin/jellyfin:${JELLYFIN_TAG}
|
|
|
|
# .test-plugin/SRFPlay is produced by test-image.sh and contains the plugin
|
|
# DLL plus a generated meta.json. Jellyfin loads from <config>/plugins.
|
|
COPY .test-plugin/SRFPlay /config/plugins/SRFPlay
|