You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This leads to the official docker image not having Temporal on musl/alpine. Temporal is just skipped if the build environment doesn't have rustc/cargo in its path.
For the downstream nodejs/docker-node repo, builds of node:alpine images for Node.js 26 now have Temporal support. nodejs/docker-node#2488 added a Rust toolchain to the Alpine Dockerfiles in that repo.
The current setup in nodejs/docker-node does not need any further changes in unofficial-builds.
Possibly, other consumers of builds from this repo may benefit from building with a Rust toolchain, however the recipes don't allow for differences in Node.js versions, so if a Rust toolchain is added it would also be applied to Node.js <=24 versions that are incompatible with Temporal, since they don't meet the minimum V8 requirements for Temporal.
if a Rust toolchain is added it would also be applied to Node.js <=24 versions that are incompatible with Temporal, since they don't meet the minimum V8 requirements for Temporal.
That's not a problem - we don't use separate build containers for each node version so it just wouldn't get used pre-node26.
I only meant that it's an extra overhead when it's not used
(disregard this comment if you were not talking about the Dockerfiles in docker-node):
In docker-node, rust and cargo are installed as a virtual package in apk add --no-cache --virtual .build-deps-full, alongside the gcc toolchain.
The entire build happens in one RUN command and runs apk del .build-deps-full to remove all build tools in the same step. So the final image size isn't impacted at all by adding rust and cargo. The only thing thats different is that the image build takes a couple of seconds longer due to the installation of rust/cargo. But they don't remain in the final image.
node Docker Alpine Linux/amd64 builds uses https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64-musl.tar.xz which is built with rust & cargo installed:
Activity
MikeMcC399 commentedon May 11, 2026
PR #228 resolved this issue for amd64
MikeMcC399 commentedon May 11, 2026
sxa commentedon May 11, 2026
Noting that nodejs/docker-node#2488 (mentioned in the related section in the previous comment) would be a solution for this.
MikeMcC399 commentedon May 11, 2026
awbx commentedon May 25, 2026
PR for the arm64 side: #234
MikeMcC399 commentedon May 26, 2026
For the downstream nodejs/docker-node repo, builds of
node:alpineimages for Node.js 26 now have Temporal support. nodejs/docker-node#2488 added a Rust toolchain to the Alpine Dockerfiles in that repo.The current setup in nodejs/docker-node does not need any further changes in
unofficial-builds.Possibly, other consumers of builds from this repo may benefit from building with a Rust toolchain, however the recipes don't allow for differences in Node.js versions, so if a Rust toolchain is added it would also be applied to Node.js <=24 versions that are incompatible with Temporal, since they don't meet the minimum V8 requirements for Temporal.
sxa commentedon May 26, 2026
That's not a problem - we don't use separate build containers for each node version so it just wouldn't get used pre-node26.
MikeMcC399 commentedon May 26, 2026
I only meant that it's an extra overhead when it's not used. Sorry I wasn't very clear in what I wrote!
alpine:3.23is 13MB uncompressed locallyapk add rustc cargotakes it up to 883MBIncremental it may only be ~400MiB
nikeee commentedon May 26, 2026
(disregard this comment if you were not talking about the Dockerfiles in docker-node):
In docker-node, rust and cargo are installed as a virtual package in
apk add --no-cache --virtual .build-deps-full, alongside the gcc toolchain.The entire build happens in one RUN command and runs
apk del .build-deps-fullto remove all build tools in the same step. So the final image size isn't impacted at all by adding rust and cargo. The only thing thats different is that the image build takes a couple of seconds longer due to the installation of rust/cargo. But they don't remain in the final image.arm64-musl: set up rust cross-compilation for aarch64-musl
MikeMcC399 commentedon Jul 10, 2026
The needs of
nodeDocker Alpine builds in https://github.com/nodejs/docker-node are currently already met (see nodejs/docker-node > Dockerfile-alpine.template):nodeDocker AlpineLinux/amd64builds useshttps://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64-musl.tar.xzwhich is built withrust&cargoinstalled:unofficial-builds/recipes/musl/Dockerfile
Lines 1 to 25 in 2708d03
nodeDocker AlpineLinux/arm64builds do not rely on https://unofficial-builds.nodejs.org and instead build from source withrust&cargoinstalled, as shown in nodejs/docker-node > Dockerfile-alpine.template:Future
nodeDocker AlpineLinux/amd64image builds would transition to usingmuslbuilds published to https://nodejs.org/download/release/ if the approved PR nodejs/node#63737 to promote Alpine/x64 to Tier 2 is merged. Preparation for this is an open action item (see also Build WG minutes https://hackmd.io/@openjs-nodejs/BJNLz8jfGg 2026-07-02).In that case
nodeDocker Alpine image builds would no longer depend on https://unofficial-builds.nodejs.org.arm64-musl: add rust and cargo to the build dependencies
arm64-musl: set up rust cross-compilation for aarch64-musl
arm64-musl: add rust and cargo to the build dependencies
arm64-musl: set up rust cross-compilation for aarch64-musl
arm64-musl: add rust and cargo to the build dependencies
arm64-musl: set up rust cross-compilation for aarch64-musl