-
Notifications
You must be signed in to change notification settings - Fork 81
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
Update of 24 base image is a braking change #380
Comments
I think the solution for you is to not use the erlang:24 tag as it is a mutable tag. If you want to have a stable tag you should use a specific version, such as 24.1.7. If you use a mutable tag this type of problem is bound to pop up whenever a change to the base OS is made. The hexpm team has taken this one step further and provide a bunch of pinned OS/Erlang/Elixir versions for docker. |
I partially agree but it's still Here we're entering into Locking into specific Interesting is fact that previous Elixir versions still have
This is a good solution but it would be great if I could rely on official images not being breaking changed in the friday afternoon. |
There is no semver here. Docker tags are mutable and images are kept up to date. It is a must that users not rely on these mutable tags for production, a copy should be made, or at the very least the full docker ref be used instead of the tag. |
After changing the base image of
erlang:24
frombuildpack-deps:buster
tobuildpack-deps:bullseye
it transitively introduced a braking change toelixir:*
images which useerlang:24
.Referring to this commit f14a791cec08903d5ac34a562861bae675cf2ff8 by @getong
There is a feature in Elixir called releases https://hexdocs.pm/mix/1.12/Mix.Tasks.Release.html which are creating a stand alone bundle which can be easily deployed to the production servers.
However for this bundle to work both build-time and run-time OS have to have exactly the same version.
So changing the underlying OS version effectively forces everyone using
mix.release
with separated build-time and run-time environments to upgrade their run-time OS with 0 time notice.This is how image build with
buildpack-deps:bullseye
and deployed withdebian:buster
looks like.The text was updated successfully, but these errors were encountered: