nodejs / nodejs/docker-node

Pull Alpine/aarch64 tarball from unofficial builds as we do for Alpine/x64

Open
#2,475 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

alpine
Dominant language
Dockerfile
Stars
8.6k
Forks
2k
Avg merge
10h 19m
Merged PRs (30d)
16

Description

Although unoffical-builds does produce an arm64 binary, it is not used by the images here. I think mixed among the recent-ish discussions was whether we should just drop even that pre-built, and just use the Docker infrastructure for all the Alpine variants.

While there are reasons that i won't go into here why that might be desirable, IMHO that would push it further away from the "regular" tier1/2 platforms. Since we're building it anyway (and people are downloading it independently of the docker images at a rate of about 1000/hour) I'd prefer the container image to have the identical build that we produce in the unofficial projects.

I'll spin off another issue about whether to process the unofficial Alpine/aarch64 built in the same way as Alpine/x64 since that's separate from Alpine/s390x.

Originally posted by @sxa in https://github.com/nodejs/docker-node/issues/2462#issuecomment-4287416228

The Alpine/aarch64 builds are far less popular than the figure listed above but since https://github.com/nodejs/unofficial-builds/pull/189 got merged we do now now have cross-compiled builds of Alpine/arm64 in the unofficilal-builds alone with x64 so we could follow the same process for both.

Notes:

  • It's cross compiled instead of build natively (May not be an option, but we don't have any cross-compiled builds yet which have the rust support working for temporal enablement yet ... But that's potentially a bigger problem). It's also a cross-compiled build which doesn't undergo any testing elsewhere in the node system. https://github.com/nodejs/unofficial-builds/issues/200 is a potential issue with the cross-compilated build (SEA failure)
  • There is a proposal to bump Alpine up to tier 2 which would change things again
  • With the removal of Alpine/s390x from node 26's container images, and Alpine/ppc64le having been removed some time ago, that only leaves Alpine/arm64 as the "dynamically built at image creation time" platform so this would ultimately help reduce complexity in the process.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Docker image build process and compare how Alpine/x64 pulls from unofficial-builds. Read unofficial-builds PR #189 and issue #200, including the notes about cross-compilation and SEA failure. Done means Alpine/arm64 is processed consistently with Alpine/x64 without overlooking the stated build and testing concerns.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, node.js
Domain
build-system, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.