PSA: Elixir 1.14 docker changes. (OTP has changed from 25 -> 26)

The latest docker image for Elixir 1.14 is now based on the OTP26 base image.
If you’re using the OTP25 docker image you will need to change to use the OTP26 docker image.

Alternatively you can now select the OTP version with your elixir docker image.

For example you might use elixir:1.14 as a build image and the otp-25 as the runtime image (so that compile dependencies aren’t present in your production docker image).

You now probably want to do something like:

# syntax=docker/dockerfile:1.3
FROM elixir:1.14-otp-25-alpine as build
...
FROM erlang:25-alpine
...

I’m posting this as a PSA because building with OTP25 and the running in OTP26 causes issues that are not obvious. I’ve seen it manifest as a crash when starting up an Ecto Repo.

4 Likes

Yes, that’s Docker’s preferred style, which we don’t really recommend. Specifying the OTP version or using the Hex.pm images is the way to go. :slight_smile:

6 Likes

Reposting this PR in case anybody knows how to poke the right people.

1 Like