Hacker News new | ask | show | jobs
by blueflow 1564 days ago
"you're on your own" is like, the expected thing when you are doing something different.

Still, Alpine is on top of everyone else when it comes to Docker Images sizes. Thats why it will stick.

3 comments

If you care about image size you need to switch to a distroless image base. It's incredibly easy nowadays with multi-stage builds. IMHO people use alpine not because they seek it out but because they're reading old guides and advice that hasn't been updated with the times.

Blindly switching to alpine to save space is opening yourself up to exactly these sorts of musl-libc quirks and issues--you better have solid test coverage and a plan to make sure there aren't unexpected edge cases.

I would suggest to just use a small number of base images. The total size of all layerse is irrelevant in most cases if it's a small layer on top of something common for you = cached.
There are a lot of tools that simply can't run distroless and adding in all the requirements is often tedious with little reward.
What are some of the tools that can't run on distroless?
Anything that relies on system libraries. This works fine for most Go apps, but can have unexpected results if you don't compile the app correctly to use Go networking and what not.
I see. Regarding Go, how would forget to import the Go net and http packages for your app? I would think your compilation itself would fail to begin with. Or are you referring to something else?
In my time building Go apps in the past, you'd need to specify the netgo tag and others. Not sure if this is necessary anymore, but I can think of a few Go packages that require CGO and what not that will not work using a scratch image.
> "you're on your own" is like, the expected thing when you are doing something different.

Indeed. And that's fine. As long as you're willing to support that difference.

But the "Alpine compiling XYZ against musl" thing is/was just being done blindly by Alpine (i.e. load X into auto-build and let it rip). Sure it compiled without errors. But it never ran properly.

I've rarely had issues and if I do there is a process to report them to get them fixed. Not yet mad and act like the entire distro is worthless because I can't be bothered with reporting an issue for something that is already free. I've had less issues with Alpine than I've had with software on Windows.
Are they still on to of everyone else in a meaningful way, though?

There was discussion yesterday [0] that pointed out that there are 29MB Debian [1] and Ubuntu [2] images.

[0] https://news.ycombinator.com/item?id=30633670

[1] https://hub.docker.com/layers/debian/library/debian/stable-s...

[2] https://ubuntu.com/blog/minimal-ubuntu-released

I run Alpine Linux from a 512 MB CF card, so yes.
What do you use this for?
On a Siemens Futro S-300. I use it as a Home Server. A 2-TB disk is mounted there, also a printer.