orchestracities/ngsi-timeseries-api

Upgrade Docker image to Alpine 3.10

Closed this issue · 4 comments

Is your feature request related to a problem? Please describe.
The Docker image uses Alpine as a base. QuantumLeap won't start in the container if the image gets built from Alpine 3.10---see #269 for the details. PR #271 implemented a stopgap solution by pinning the Alpine version to 3.8.

Describe the solution you'd like
We need to understand what goes wrong exactly with 3.10 and then upgrade the image accordingly. Keep in mind the base version should still be pinned though as done in #271 to up the likelihood of build reproducibility. We definitely don't want to wind up again in a situation where it's possible to build two slightly different images depending on the machine you build on, courtesy of loose image tagging as in python:3.6-alpine where the same tag points to an image that gets regularly updated---the horror!

Describe alternatives you've considered
Docker layers, image tagging and caching, silly build file syntax, Linux package managers...these are 20th century solutions to dependency management. Nix and NixOS have leaped in the 21st century already offering a way out of the mess with proper dependency management and programming language support. We should consider a Nix-based build system so we can track all deps properly and guarantee proper app isolation and build reproducibility. As an added benefit, we can create tiny Docker images, even smaller than what you can do with an Alpine base.

Additional context
#271, #270, #269, #315 (this comment in particular)

PR #315 upgraded to Alpine 3.12 and Python 3.8.3, but dependency management issues are still lurking around...

is this still a valid issue?

yes I think it is...

Stale issue message