-
Notifications
You must be signed in to change notification settings - Fork 4.9k
distroless image not really distroless? Not running under alpine.. #35008
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
Comments
it really is - that is exactly what it provides - glibc and nothing else - we (envoy) add a static binary that uses just that if the expectation is for some kind of universal distro then i think there is some misunderstanding - not sure that it would be even possible our binary is not universally portable - it requires a minimum glibc version - but its pretty portable - ie to any environment that meets the glibc environment iirc alpine uses musl - im not totally clear on the compatibility there - but in the main i believe it should work i think this question is not really about whether the container is "distroless" its more about binary compatibility with musl i think we dont want to bring back the alpine distro - we had it mostly to serve the purpose that the distroless container serves far far better (ie minimum included environment, smaller and more lightweight container image) this seems more like an issue with musl/alpine glibc compatibility tbh - i would raise the issue there |
@phlax i also don't know how musl tracks its compatibility to glibc, i guess there must some kind of API versioning to ensure it. do you see any chance that envoy could produce a "musl" binary? or is it simply the case that musl does not provide all the features needed? ---> i'm just baffled that not even a year ago there was a "alpine distro" build and now it seems to be fully incompatible? |
the (upstream) container/image is designed to be distro agnostic - i think the name is correct - although i guess its not entirely distro agnostic - which in docker terms would just be the i also dont know exactly how musl tracks/maps to glibc - im aware there is some compatibility, but we had issues previously which was one of our reasons for dropping support - the main reason being that the distroless image provides a better base for what we were using it for. im not 100% about which glibc version we require - but i think when i looked at this previously i came to the conclusion that is set here in our repo: distribution/debian/packages.bzl:GLIBC_MIN_VERSION = "2.27" alpine has not been supported for ~2 years - i dont rem exactly the state when we dropped support, but i would be surprised if it cant be made to work if that is a hard requirement. We are unlikely to bring back support for it as we now provide the distroless which, as mentioned above, better serves our needs and requires much less maintenance |
closing as documented, thanks @phlax |
hi guys
my struggle is with dockerizing envoy. specifially, i have a component that needs an
alpine
base image.i am aware that there was
envoy-alpine
builds, but those are deprecated in favor of thedistroless
images (as mentioned in #21758). but it seems they are not reallydistroless
, as they are not able to run inside analpine
container.first, we start with a simple dockerfile:
let's build and try to use it
hm, let's see ldd output:
ok - let's try to add some musl/glibc/compat things as suggested over the internet
build and run again
now it seems all
*.so
files are found but we still have thosesymbol not found
errors.Assumption?
The name
distroless
suggests that it is truly a portable, statically linked binary. Many (especiallygolang
) projects provide similar binaries which run on alpine without any issues. Is this assumption incorrect? Shouldn't it also run under alpine?Thanks so much for all your efforts, love the project!
The text was updated successfully, but these errors were encountered: