Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Image locking #37

Open
boukeversteegh opened this issue Apr 11, 2022 · 0 comments
Open

Docker Image locking #37

boukeversteegh opened this issue Apr 11, 2022 · 0 comments

Comments

@boukeversteegh
Copy link
Contributor

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

  • Commands that are included with dockerized are locked to specific image digests
  • The .env file is still readable and intuitive, i.e. GO_VERSION=1.17.8 and not GO_VERSION=f837w389875t0438r
  • The versions are locked to the same digest for all users (so not determined upon first use, but included in the release)
  • A way for maintainers to upgrade the digest of a version

Technical implementation

Todo.

  • A lock file will probably make the most sense

Out of scope

These features can be considered for a future iteration:

  • Per user and per project locked versions.
  • Version locking of ad-hoch specified versions (e.g. dockerized go:1.16 will then lock go 1.16 to a particular digest, 'forever')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant