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