Files
scriptc/Dockerfile.sandbox
Chris Tate a8efd2fbad Fix Sandbox command transport and pinned native setup
Build the Linux LLVM helper and runtime pack before running both test lanes, and align native cache contracts with the current target policy. Full managed Sandbox gate passed.
2026-09-12 15:36:19 -05:00

61 lines
2.3 KiB
Docker

ARG NODE_VERSION=24.15.0
FROM ubuntu:24.04
ARG NODE_VERSION
ARG PNPM_VERSION=11.1.3
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
ca-certificates curl gnupg \
&& curl --fail --silent --show-error --location https://apt.llvm.org/llvm-snapshot.gpg.key \
| gpg --dearmor --output /usr/share/keyrings/llvm-snapshot.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/noble/ llvm-toolchain-noble-22 main" \
> /etc/apt/sources.list.d/llvm22.list \
&& apt-get update \
&& apt-get install --yes --no-install-recommends \
build-essential \
ca-certificates \
ccache \
clang-22 \
cmake \
curl \
git \
libclang-rt-22-dev \
libzstd-dev \
llvm-22-dev \
ninja-build \
xz-utils \
zlib1g-dev \
&& ln -sf clang-22 /usr/bin/clang \
&& ln -sf clang++-22 /usr/bin/clang++ \
&& test "$(llvm-config-22 --version)" = 22.1.8 \
&& rm -rf /var/lib/apt/lists/*
RUN curl --fail --silent --show-error --location \
--output /tmp/node.tar.xz \
"https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
&& curl --fail --silent --show-error --location \
--output /tmp/SHASUMS256.txt \
"https://nodejs.org/dist/v${NODE_VERSION}/SHASUMS256.txt" \
&& grep " node-v${NODE_VERSION}-linux-x64.tar.xz$" /tmp/SHASUMS256.txt \
| sed 's#node-v[^ ]*-linux-x64.tar.xz#/tmp/node.tar.xz#' \
| sha256sum --check --strict - \
&& tar -xJf /tmp/node.tar.xz --directory /usr/local --strip-components=1 \
&& rm /tmp/node.tar.xz /tmp/SHASUMS256.txt
RUN npm install --global "pnpm@${PNPM_VERSION}"
WORKDIR /workspace
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages/cli/package.json packages/cli/package.json
COPY packages/cli/scripts/warm-cache.mjs packages/cli/scripts/warm-cache.mjs
COPY packages/cli/scripts/runtime-pack-host.mjs packages/cli/scripts/runtime-pack-host.mjs
COPY packages/compiler/package.json packages/compiler/package.json
COPY packages/runtime/package.json packages/runtime/package.json
RUN pnpm install --frozen-lockfile \
&& chmod -R a+rwX /workspace