mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-02 00:25:34 +08:00
- Pin GNU runtime packs to glibc 2.36 Zig targets and reject incompatible imports. - Provision verified Zig builds and exercise published artifacts on Debian Bookworm. Fixes #349 Co-authored-by: Cruel <383999+Cruel@users.noreply.github.com>
66 lines
2.4 KiB
Docker
66 lines
2.4 KiB
Docker
ARG NODE_VERSION=24.15.0
|
|
FROM ubuntu:24.04
|
|
|
|
ARG NODE_VERSION
|
|
ARG PNPM_VERSION=11.1.3
|
|
ARG ZIG_VERSION=0.16.0
|
|
|
|
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
|
|
|
|
COPY scripts/install-zig.sh /tmp/install-zig.sh
|
|
RUN sh /tmp/install-zig.sh "$ZIG_VERSION" \
|
|
&& rm /tmp/install-zig.sh
|
|
|
|
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
|