-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Can't install on linux/arm64 with docker node #2482
Comments
Hi, the salient part is:
This is documented at https://sharp.pixelplumbing.com/install#prebuilt-binaries
|
But there is no need to compile anything...? docker image is linux/arm64 and there is a prebuild binary available. it runs all fine in linux/x86 - while there is the same glibc 2.24 or does node needs to change all their official docker image to include glibc 2.29+ ? |
Please see lovell/sharp-libvips@2e4202d for a discussion about why the prebuilt arm64 binaries currently require glibc 2.29+ |
Thanks - make sense now. Hope node updates their base images. However even latest buster image is still with glibc 2.28 Maybe you can consider to support musl? Trying docker node:14-alpine, produced:
|
Btw the Linux/arm64 is running natively on the new Apple Silicon M1 arm64 with the upcoming Docker Desktop version for the M1. So it is essential to have the right binaries ready for easy docker deploy @lovell |
can you clarify @lovell that you need GLIBC 2.29+ - just to run libvips? Not only to compile it? |
As you hopefully saw from the discussion in lovell/sharp-libvips@2e4202d, gcc 9.2.0+ is required to compile libvips on arm64 without introducing compiler bugs. The oldest OS that provides gcc 9.2.0 is Debian 11, which also provides and therefore requires glibc 2.29. |
Yes I saw that - but I don't need to compile libvips - the precompiled binary from sharp-libvips for arm64v8 is just fine! But your check for glibc version prevents it from being downloaded.... |
A binary compiled on Debian 11 will require glibc 2.29+ at runtime. |
ok then we will have to wait for node to be available on debian bullseye ... it might take a while. maybe there is a better hope for node-alpine with musl? |
|
I mean the official docker node image: It doesn't have bullseye yet, so no docker node installation under arm64 can run sharp ... |
See also: |
Let's track this at lovell/sharp-libvips#72 |
@lovell are the node-gyp checks already adjusted for the new live builds? I'm still getting errors of not found binaries. Using node-14:slim (GCC)
and using node-14:alpine (MUSL)
|
@gpetrov The |
ah bummer 😃 well lets hope 0.28 come soon then. Yes node-14:slim uses unfortunately Debian Buster with glibc 2.28, so no much luck there. I thought you were able to lower that requirement with cross compiling? Lets hope for the node-14:alpine that can use Alpine 3.13 having musl 1.2 |
No, sorry, I did some more digging and gcc 9 is required - see lovell/sharp-libvips#86 (comment) |
Correction node-14:slim uses even Debian Stretch with glibc 2.24 |
I'm seeing something similar today using the ubuntu-latest image provided by GitHub actions. I have seen the error when installing both with Node.js versions 16.x and 18.x. The tasks usually complete with a successful install after I re-run them. This issue was the closest thing I could find to my issue, so I am appending my comments to it.
|
@jeromecovington Please open a new installation issue and answer all of the questions if you still require help. |
Trying to run a simple Dockerfile to install node together with sharp on linux/arm64 fails.
when ran on arm64 - it produces:
while the arch checks gives:
There are already prebuild libvips images for arm64v8 - why aren't they used?
Running the same on Windows 10, goes actually just fine. While the arch checks is there pretty much the same:
@lovell I think the glibc check is a bit too hard and doesn't check for prebuild images first.
The text was updated successfully, but these errors were encountered: