Skip to content
File

Blob: Dockerfile.release

1.1 KB
1FROM node:trixie AS builder
2 
3WORKDIR /workerd
4 
5# Replacing build-essential with dpkg-dev here, no need to install gcc.
6RUN apt-get update
7RUN apt-get install -y --no-install-recommends curl dpkg-dev git lsb-release wget software-properties-common gnupg tcl
8 
9RUN wget https://apt.llvm.org/llvm.sh
10# Drop the install step here so we can install just the packages we need.
11RUN sed -i '/apt-get install/d' llvm.sh
12RUN chmod +x llvm.sh
13RUN ./llvm.sh 19
14RUN apt-get install -y --no-install-recommends clang-19 lld-19 libunwind-19 libc++abi1-19 libc++1-19 libc++-19-dev libclang-rt-19-dev
15COPY . .
16 
17RUN echo "build:linux --repo_env=CC=/usr/lib/llvm-19/bin/clang" >> .bazelrc
18COPY .bazel-cache /bazel-disk-cache
19# pnpm version will be different depending on the value of `packageManager` field in package.json
20RUN npm install -g pnpm@latest
21RUN pnpm install
22 
23RUN pnpm exec bazel build --disk_cache=/bazel-disk-cache --config=release_linux //src/workerd/server:workerd
24 
25FROM scratch as artifact
26COPY --from=builder /workerd/bazel-bin/src/workerd/server/workerd /workerd-linux-arm64
27COPY --from=builder /bazel-disk-cache /.bazel-cache