Alpine linux introduces lots of issues which can cause workflow to break, we have already been stung by this and have had builds randomly break in our cli and recently when developing a jq command we found it would work a way on all non-alpine os and another way on alpine os
By using Alpine, you're getting "free" chaos engineering for you cluster.
Some of it stems from how musl (and therefore also Alpine) handles DNS (it's always DNS), more specifically, musl (by design) doesn't support DNS-over-TCP. Usually, you would not notice this difference, because most of the time a single UDP packet (512 bytes) is enough to resolve hostnames... until it isn't enough and your application (running on Kubernetes) that previously worked completely fine for months suddenly starts throwing "Unknown Host" exceptions for one particular (very critical) hostname. The worst part is that this can manifest randomly, anytime when some external network change causes the resolution of some particular domain to require more than the 512 bytes available in single UDP packet.
Background
Alpine linux introduces lots of issues which can cause workflow to break, we have already been stung by this and have had builds randomly break in our cli and recently when developing a jq command we found it would work a way on all non-alpine os and another way on alpine os
By using Alpine, you're getting "free" chaos engineering for you cluster.
Some of it stems from how musl (and therefore also Alpine) handles DNS (it's always DNS), more specifically, musl (by design) doesn't support DNS-over-TCP. Usually, you would not notice this difference, because most of the time a single UDP packet (512 bytes) is enough to resolve hostnames... until it isn't enough and your application (running on Kubernetes) that previously worked completely fine for months suddenly starts throwing "Unknown Host" exceptions for one particular (very critical) hostname. The worst part is that this can manifest randomly, anytime when some external network change causes the resolution of some particular domain to require more than the 512 bytes available in single UDP packet.
ref
👇🏽 Dockerfiles using alpine linux
Definition of done
Reference
How to write good user stories