Give the Linux QUIC dev image Node 24 and the .NET 10 SDK

Cut 4's own npm tests and the C#-to-TS interop lane need to run in the same
container that builds the native bridge, and the image had neither runtime.
Smallest change: install Node 24 from NodeSource and the .NET 10 SDK from
dotnet-install.sh, both pinned by channel/major version the way the rest of
this image pins its toolchain by digest.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-23 12:33:12 +02:00
commit 67d49b567d

View file

@ -28,11 +28,26 @@ FROM debian:13@sha256:f324c7ff54321e8d9c588493a20244965938ce0aa50bbd1022d38010e9
# ca-certificates and dpkg fetch and unpack the pinned libmsquic deb;
# util-linux carries setarch, needed to re-execute the TSan scenarios under
# ADDR_NO_RANDOMIZE. The four libraries are MsQuic's own runtime dependencies,
# which the bridge does not vendor.
# which the bridge does not vendor. gnupg is needed only to fetch the NodeSource
# key below.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
bash ca-certificates cmake curl dpkg g++ ninja-build util-linux \
bash ca-certificates cmake curl dpkg g++ ninja-build util-linux gnupg \
libssl3t64 libnuma1 libxdp1 libnl-route-3-200 \
&& rm -rf /var/lib/apt/lists/*
# Node 24 and the .NET 10 SDK: the Cut 4 QUIC realtime plane's own npm tests
# and the C#-to-TS interop lane run in this image too, so it needs to build the
# bridge and then exercise it from both runtimes without a second image.
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh \
&& bash /tmp/dotnet-install.sh --channel 10.0 --install-dir /usr/share/dotnet \
&& rm /tmp/dotnet-install.sh \
&& ln -s /usr/share/dotnet/dotnet /usr/local/bin/dotnet
ENV DOTNET_ROOT=/usr/share/dotnet
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
WORKDIR /src