nodejs / docker-node

Official Docker Image for Node.js :whale: :turtle: :rocket:
https://hub.docker.com/_/node/
MIT License
8.2k stars 1.96k forks source link

Missing ARM32v6 platform for some Node.js 18 alpine tags #1772

Open Hazmi35 opened 1 year ago

Hazmi35 commented 1 year ago

Environment

Expected Behavior

ARM32v6 platform exists in all Node.js 18 alpine tags

Current Behavior

Some Node.js 18 alpine tags does not contain the ARM32v6 platforms

For example 18.9.0-alpine and 18.9-alpine does not contain ARM32v6 platforms, but 18-alpine does.

Additional Information

image image image

SimenB commented 1 year ago

@tianon @yosifkit any idea?


For example 8.9.0-alpine

I assume you mean 18 🙂

EDIT: actually, quite sure as that's what the screenshot shows 😀

Hazmi35 commented 1 year ago

I assume you mean 18 :slightly_smiling_face:

Yes, sorry, it's edited now

tianon commented 1 year ago

From the logs, it looks like the build took so long it timed out -- I've given it another try now, and hopefully it works this time. (If it doesn't, we'll want to look into why this latest build of 18 is taking so much longer to build on this one architecture. :sweat_smile:)

tianon commented 1 year ago

It took a very long time (almost two hours per build, compared to roughly half of one for previous builds of 18 on that same architecture :weary:), but it's finally built successfully! Those builds should be pushed and available Soon. :+1:

Hazmi35 commented 1 year ago

Some Node.js 18 builds seems to be failed again, (ARM32v6 and ARM32v7?)

tianon commented 1 year ago

:weary: indeed -- I wonder what's so different about these recent Node.js 18 releases that they're taking so much longer to build on 32bit ARM than the previous point releases did? :thinking:

SimenB commented 1 year ago

@nodejs/build ^ any ideas?

richardlau commented 1 year ago

Are builds using compilation caches from previous builds (e.g. ccache)? If so any release with any sort of update to V8 (patches/backports etc) would potentially invalidate the cache for the bulk of the build.

tianon commented 1 year ago

Nope, each build is 100% independent of any previous build (the only cache is the Docker build cache, which is only going to be a cache of the top layers that install dependencies, etc).

Hazmi35 commented 1 year ago

ARM32v7 platform is also failing too now, 18.10.0-alpine doesn't have the same platforms as 18-alpine

tianon commented 1 year ago

It took a few tries, but this is now fixed again.

sxa commented 1 year ago

Side question (I'm curious!) what are people's use cases for Alpine on armv6l? I'd be surprised if there were many such systems out there that you'd want to run anything in docker containers onm but I guess if it's been noticed there is some demand for it.

lucas42 commented 1 year ago

Side question (I'm curious!) what are people's use cases for Alpine on armv6l?

@sxa My use case is that I've written a javascript-based music player. It mostly runs in the browser, but there's a few cases where I want to run it where there isn't a browser environment available. So I run the logic in node, deployed on a raspberry pi. In the past few years, raspberry pis have been in limited supply, meaning I have to make do with whichever model is available. Wrapping the code in docker generally makes it easy to deploy across most models of raspberry pi, but the differences in architecture means I do hit problems like this one now and again.