sheerlox
Automatic updates of Elixir docker image with Renovate
I stumbled upon this issue this morning: Improve discoverability of available images · Issue #185 · hexpm/bob · GitHub
Every time I decide to bump image versions it gets frustrating to discover what is the lastest Elixir + OTP + base image that is a valid tag.
This is a pain I also felt a few months ago, so I came up with a Renovate configuration that keeps hexpm/elixir up-to-date in my Dockerfile.
After finding the mentioned GitHub issue, I found it might interest some of you, so I’ve setup a minimal reproduction repository to showcase that ![]()
cc @rhcarvalho ![]()
Benefits of this config
- Automatically updates the
hexpm/elixirDocker base image tag (for Fly) - Keeps Elixir/OTP versions in sync between
asdf(.tool-versions) and
production Docker
How does it work
- We use version comments in [Dockerfile` to tell Renovate
where to find the version information for each part of the image (Debian,
OTP & Elixir) - We setup a “Test Docker Build” CI workflow that makes sure the image tag
composed from those three versions actually exist (so Renovate doesn’t
auto-merge an inexistant image, if auto-merge is enabled in the first place) - We add the
regexManagers:dockerfileVersionspreset and a few package rules
for the Debian versioning
When merging update PRs for each component, I find it’s best to merge them in
this order: Debian > OTP > Elixir.
Most Liked
D4no0
This is pretty neat, this was always a pain in the ass to configure, especially when dockerhub elixir images didn’t use to have the OTP version specified.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








