I have a lot of Docker images using Alpine Linux as a base. This is awesome when trying to get the most streamlined images possible - 24MB for a complete image is amazing!
Soooo, lately, I've been seeing a lot of packages that I try upgrading are now broken with my Dockerfiles (even the same version is of working images fails now). Below is an extremely simple example of the Dockerfile I use for my TOR relay node.
This Docker image does not build correctly, complaining about missing dependencies - in fact, apk is complaining about not have libraries normally found in OpenSSL (libcrypto.so and libssl.so).
So standard troubleshooting time, let's try to install OpenSSL (even though apk should have pulled that in).
Hmmm... no effect - well that sucks.
So, after I spent a little more time looking into this problem (basically going through the changes on source control). I discovered that many Alpine maintainers are recompiling their projects to target LibreSSL. With that knowledge I went searching for where LibreSSL was hiding these days in the Alpine repositories - and alas I found the missing libraries in the edge/main repository.
Below is a fixed Dockerfile:
Notice that I added --repository http://dl-cdn.alpinelinux.org/alpine/edge/main as a source to the problematic line. So, yeah, working images again!