Elixir
Détecté via mix.exs. Construit une release Mix. Erlang et Elixir restent hors de l'image d'exécution.
Guides de déploiement pas à pas : Elixir and Phoenix.
Consultez Buildpackspour comprendre la détection et la politique de versions.
Détection
mix.exs dans le Base directory.
Versions
Par défaut, Elixir 1.20 avec Erlang/OTP 28. Branches d'Elixir publiées en septembre 2026 : 1.15-1.20. Branches d'OTP publiées : 26-29. Vous obtenez le dernier correctif de la branche demandée.
Pour fixer la version d'Elixir, dans cet ordre :
- Une entrée
elixirdans.tool-versions(avec le style asdf1.18.2-otp-27, c'est la partie avant le trait d'union qui compte) .elixir-version
La contrainte elixir: dans mix.exs est une plage, pas une version fixée. Nodion ne l'utilise pas. Une ancienne contrainte ~> 1.17 fonctionne toujours avec une version par défaut plus récente.
Fixez la version d'Erlang avec une entrée erlang dans .tool-versions.
Installation et build
mix local.hex, mix local.rebar, mix deps.get --only prod. Si mix assets.deploy existe, il s'exécute ensuite. Puis mix release --overwrite.
L'app doit être configurée pour les releases Mix. La release embarque ERTS, l'image d'exécution ne contient donc que la release.
Au lancement, PHX_SERVER=true est défini pour démarrer un endpoint Phoenix. Cela n'a aucun effet sur les releases qui n'utilisent pas Phoenix.
Commande de démarrage
<release>/bin/<app> start, en privilégiant le nom de l'app OTP défini dans mix.exs. Un Procfile permet de remplacer la commande. Votre app doit écouter sur PORT (Phoenix lit PORT si la release a été générée ainsi).