Elixir
Se detecta por mix.exs. Construye una release de Mix. Erlang y Elixir no se incluyen en la imagen de runtime.
Guías de despliegue paso a paso: Elixir and Phoenix.
Consulta Buildpackspara ver cómo funcionan la detección y la política de versiones.
Detección
mix.exs en el directorio base.
Versiones
La versión por defecto es Elixir 1.20 sobre Erlang/OTP 28. Ramas de Elixir publicadas a septiembre de 2026: 1.15-1.20. Ramas de OTP publicadas: 26-29. Recibes el último parche de la rama solicitada.
Para fijar la versión de Elixir, se consultan estas fuentes en este orden:
- Una entrada
elixiren.tool-versions(con el estilo asdf1.18.2-otp-27se usa la parte anterior al guion) .elixir-version
El requisito elixir: de mix.exs es un rango, no una versión fijada. Nodion no lo usa. Un ~> 1.17 antiguo sigue funcionando con una versión por defecto más reciente.
Para fijar la versión de Erlang, usa una entrada erlang en .tool-versions.
Instalación y build
mix local.hex, mix local.rebar, mix deps.get --only prod. Si existe mix assets.deploy, se ejecuta a continuación. Después, mix release --overwrite.
La app tiene que estar preparada para releases de Mix. La release incluye ERTS, así que la imagen de runtime contiene solo la release.
Al arrancar se define PHX_SERVER=true para que se inicie un endpoint de Phoenix. En las releases que no son de Phoenix no tiene ningún efecto.
Comando de inicio
<release>/bin/<app> start, con preferencia por el nombre de la app OTP de mix.exs. Puedes sobrescribirlo con un Procfile. Tu app debe escuchar en PORT (Phoenix lee PORT si la release se ha generado así).