Elixir
Erkannt über mix.exs. Baut ein Mix-Release. Erlang und Elixir bleiben außerhalb des Run-Images.
Siehe Buildpacksfür Detection und Versionspolitik.
Erkennt
mix.exs im Base directory.
Versionen
Default ist Elixir 1.20 auf Erlang/OTP 28. Veröffentlichte Elixir-Lines Stand September 2026: 1.15-1.20. Veröffentlichte OTP-Lines: 26-29. Du bekommst den neuesten Patch der angefragten Line.
Elixir pinnen mit, in dieser Reihenfolge:
- einem Eintrag
elixirin.tool-versions(asdf-Stil1.18.2-otp-27nutzt den Teil vor dem Bindestrich) .elixir-version
Die Anforderung elixir: in mix.exs ist ein Range, kein Pin. Nodion nutzt sie nicht. Ein altes ~> 1.17 läuft trotzdem auf einem neueren Default.
Erlang pinnen mit einem Eintrag erlang in .tool-versions.
Install und Build
mix local.hex, mix local.rebar, mix deps.get --only prod. Existiert mix assets.deploy, läuft das als Nächstes. Dann mix release --overwrite.
Die App muss für Mix-Releases eingerichtet sein. Das Release bündelt ERTS, das Run-Image ist also nur das Release.
Launch setzt PHX_SERVER=true, damit ein Phoenix-Endpoint startet. Harmlos bei Non-Phoenix-Releases.
Start-Command
<release>/bin/<app> start, bevorzugt der OTP-App-Name aus mix.exs. Mit einer Procfile überschreiben. Auf PORT lauschen (Phoenix liest PORT, wenn das Release so generiert ist).