Files
WatchedTogether/Dockerfile.builder
T
dtourolleandClaude Opus 5.5 408cb26da7
🏗️ Build Plugin / build (push) Successful in 11m40s
🧪 Test Plugin / test (push) Successful in 10m39s
ci: run on any runner, amd64 or arm64
The builder image is now multi-arch (linux/amd64 + linux/arm64). Both
variants were tested by running this repo's own CI build steps in each
before being pushed as :latest. Jobs therefore no longer need an amd64
host: runs-on moves to ubuntu-latest, which the amd64 runner (draco-x86)
and the ARM runner (oracle-a1) both carry, so jobs go to whichever is
free instead of queueing behind long jobs on draco.

The Dockerfile header now gives the buildx command for the multi-arch
image, so a rebuild does not silently go back to amd64-only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 04:12:43 +02:00

30 lines
1.2 KiB
Docker

# Watched Together builder image
# Pre-built image with the .NET 10 SDK and JPRM for building and testing the plugin. The SDK builds
# both the net9.0 (Jellyfin 10.11) and net10.0 (Jellyfin 12) targets; the net9.0 test run rolls
# forward onto the .NET 10 runtime.
# Multi-arch (amd64 + arm64): CI runs on ubuntu-latest, which both the amd64 and the
# ARM runners carry, so the image must exist for both.
# Build + push (needs a docker-container buildx builder and arm64 binfmt/QEMU):
# docker buildx build -f Dockerfile.builder --platform linux/amd64,linux/arm64 \
# -t gitea.tourolle.paris/dtourolle/watchedtogether-builder:latest --push .
FROM mcr.microsoft.com/dotnet/sdk:10.0
# nodejs is required by the runner itself, not by the build: actions/checkout and
# actions/cache are JavaScript actions, and the runner execs `node` inside this
# container to run them. Without it every job fails at the checkout step with
# "exec: node: executable file not found in $PATH".
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
git \
jq \
curl \
nodejs \
npm \
&& rm -rf /var/lib/apt/lists/*
RUN pip install --break-system-packages jprm
WORKDIR /src