datastack-net / dockerized

Run popular commandline tools within docker
MIT License
1.26k stars 39 forks source link

Docker Image locking #37

Open boukeversteegh opened 2 years ago

boukeversteegh commented 2 years ago

Lock default versions to specific image hashes, to make command upgrades explicit.

Why:

Last week all major official dockerhub images were updated and existing tags replaced. This has broken the --shell integration tests for several commands.

For example, golang:1.16 now uses alpine3.15, whereas before, it may have been 3.14 or even a different linux distro (it's not actually possible to know what was used before).

This reveals that specifying versions (or even tags) is not enough to guarantee reproducibility, i.e. dockerized may work well one day, and be broken another. Differences between systems may occur, depending on which image was present locally for a specific tag.

Functional requirements

Technical implementation

Todo.

Out of scope

These features can be considered for a future iteration: