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
But linux-headers cannot be removed because it remains a dependency of libffi-dev. Is the package libffi-dev really a runtime dependency? It seems like it would mainly be needed for compiling gems with C extensions and doesn't need to persist, taking up space in the image. It is a significant amount of space for an alpine image:
$ docker run --rm -it library/ruby:3.3.6-alpine du -hs /usr/include/linux
6.7M /usr/include/linux
The text was updated successfully, but these errors were encountered:
We traced the history back through #349 to #60 for why these -dev packages are even installed persistently to begin with, because that's unusual for our Alpine-based images. The best we can find is #33, which is that the "slim" images included the dev packages too, and that's also unusual.
I'm sure there was a good reason, but that was done way back when we were still figuring things out, so I'm almost inclined to remove them from the persistent dependencies entirely and see how it goes. 🤔
That being said, such a change is a breaking change, and that causes me some pause. I'd definitely like to make the change, though, because they're not appropriate to include in the Alpine (or even Slim) images.
libffi-dev depends on linux-headers.
libffi-dev is installed here, but brings in linux-headers
ruby/Dockerfile.template
Line 22 in 7806540
linux-headers is installed here as a Ruby build dependency:
https://github.com/docker-library/ruby/blob/master/3.4/alpine3.21/Dockerfile#L51
And we attempt to remove all the build dependencies here, but can't be deleted because libffi-dev is still installed:
https://github.com/docker-library/ruby/blob/master/3.4/alpine3.21/Dockerfile#L132
But linux-headers cannot be removed because it remains a dependency of libffi-dev. Is the package libffi-dev really a runtime dependency? It seems like it would mainly be needed for compiling gems with C extensions and doesn't need to persist, taking up space in the image. It is a significant amount of space for an alpine image:
The text was updated successfully, but these errors were encountered: