Images: Elixir 1.20.4 on OTP 28.5.0.8, Alpine 3.24.3

d5dd76b · Gabe Morell · 2026-10-27 02:06

4 files +9 -7
Message
{commit_body(@commit)}

Files changed

modified .forgejo/workflows/dependency-updates.yml
+5 −5
@@ -32,17 +32,17 @@ jobs:
32 32 # changed anything before pushing it.
33 33 fetch-depth: 0
34 34
35 − # The Dockerfile says elixir:1.15, but room_scribes declares
36 − # `elixir: "~> 1.18"` and Mix won't compile it on anything
37 − # older, so 1.18 is the floor the umbrella actually builds on.
35 + # The same toolchain the Dockerfile builds with (hexpm/elixir
36 + # 1.20.4 on OTP 28.5.0.8). room_scribes declares
37 + # `elixir: "~> 1.18"`, so 1.18 is the floor the umbrella builds on.
38 38 # OTP and Elixir from builds.hex.pm, the builds setup-beam would
39 39 # fetch — taken directly, since setup-beam chooses one by ImageOS,
40 40 # which this runner sets to "selfhosted" over anything a workflow
41 41 # says.
42 42 - name: OTP and Elixir
43 43 env:
44 − OTP_VERSION: "27.3.4.9"
45 − ELIXIR_VERSION: "1.18.4"
44 + OTP_VERSION: "28.5.0.8"
45 + ELIXIR_VERSION: "1.20.4"
46 46 run: |
47 47 ubuntu=$(. /etc/os-release && echo "$VERSION_ID")
48 48 curl -sSfL "https://builds.hex.pm/builds/otp/ubuntu-${ubuntu}/OTP-${OTP_VERSION}.tar.gz" | tar xz -C /tmp
modified Dockerfile
+4 −2
@@ -1,7 +1,9 @@
1 1 # The same Elixir and OTP the dependency-updates workflow resolves with.
2 2 # room_scribes declares `elixir: "~> 1.18"`, which Mix won't compile on
3 −# the 1.15 this used to name.
4 −FROM docker.io/elixir:1.18.4-otp-27-alpine
3 +# the 1.15 this used to name. hexpm's Alpine build rather than the
4 +# official elixir:1.20.4-otp-28-alpine, which has no amd64 image; its
5 +# Alpine is the one alpine:latest below points at.
6 +FROM docker.io/hexpm/elixir:1.20.4-erlang-28.5.0.8-alpine-3.24.3
5 7 MAINTAINER Gabe <gmp@gmp.io>
6 8 ARG app_name=apollos_crib
7 9 ARG phoenix_subdir=.

Parents: b9ed986