-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add unofficial build notice for Node Alpine #2484
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The markdown formatter appears to have an issue with this change. Perhaps the missing newline at the end of the file?
I'm guessing you excluded the latter two paragraphs of https://github.com/docker-library/docs/blob/dcac2322f4db6bbf2cfdc2fc726298aae1355443/.template-helpers/variant-alpine.md intentionally -- I'm not opposed, but maybe you can elaborate on why you didn't include them? Aren't they still relevant to Node's Alpine variants? |
Should we link to https://github.com/nodejs/node/blob/main/BUILDING.md#platform-list somewhere, to let people know musl support is considered experimental by the node project? |
e95de15
to
2da1047
Compare
@Starefossen @hmalphettes @jlmitch5 / @mikeal @SimenB @PeterDaveHello (https://github.com/nodejs/docker-node#governance-and-current-members) Any objection to merging this? |
|
||
This variant is useful when final image size being as small as possible is your primary concern. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so software will often run into issues depending on the depth of their libc requirements/assumptions. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images. | ||
|
||
To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm unsure if we should provide such a comprehensive context that is not directly related to the original discussion, though it might not hurt.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comes from the original text that's on https://hub.docker.com/_/node currently: https://github.com/docker-library/docs/blob/dcac2322f4db6bbf2cfdc2fc726298aae1355443/.template-helpers/variant-alpine.md
https://hub.docker.com/_/node#:~:text=node%3A%3Cversion%3E%2Dalpine
Just a very small question, but overall, I'm good with it. |
|
||
This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general. | ||
|
||
Please be aware that our Node.js Alpine Docker images use builds from https://unofficial-builds.nodejs.org/, which are not signed by the official Node.js release team. These builds are chosen to ensure compatibility and performance within the Alpine environment. We share this information for transparency and to help you make informed decisions regarding your application setup. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should mention:
- it's called "unofficial builds", but it is maintained by the node build team
- link to https://github.com/nodejs/node/blob/main/BUILDING.md#platform-list which has musl/alpine as "experimental"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not truely maintained by the Build team (2 of the build Team people have access), it's partially maintained on a best-effort through the unofficial builds.
There has been conversations around bumping it up to officially supported, but there hasn't been anyone step forward to be able to official troubleshoot in case there is a release failure on musl
No description provided.