You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Distillery构建发布包时报`Unable to configure release!`错误如何解决?

你当前的报错和appup构建无关,是启动发布包时运行时配置加载失败导致的,核心有两处错误:

1. 运行时配置变量未定义

你使用的config/releases.exs中直接调用了database_url和secret_key_base两个变量,但没有提前从环境变量读取赋值,运行时变量未定义会直接抛出异常,导致配置加载流程中断。
需要在配置开头补充变量读取逻辑:

import Config

# 补充这两行
database_url = System.fetch_env!("DATABASE_URL")
secret_key_base = System.fetch_env!("SECRET_KEY_BASE")

# 原有配置逻辑
config :acompanhante, Acompanhante.Repo,
  adapter: Ecto.Adapters.Postgres,
  ssl: true,
  url: database_url,
  pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10")
# ...其余原有配置

本地测试不需要强制校验环境变量的话,可以用System.get_env/2设置默认值:

database_url = System.get_env("DATABASE_URL", "postgres://postgres:postgres@localhost:5432/acompanhante_dev")
secret_key_base = System.get_env("SECRET_KEY_BASE", "dt90Q3jEa4sF6gH7jK8lZ0xM2nP4qR6tU8vW0yZ2c4vB6nM8pQ0sT2wY4aS6dF8")

2. dev环境配置不匹配

你当前启动的是dev环境的发布包,你在environment :dev块中开启了dev_mode: true,Distillery的dev模式默认会跳过release块中配置的overlay拷贝操作,你定义的{:copy, "config/releases.exs", "etc/config.exs"}规则不会生效,导致发布包${RELEASE_ROOT_DIR}/etc/目录下不存在config.exs文件,配置提供者找不到目标文件直接报错。
两种修复方案按需选择:

  • 测试正式发布逻辑:构建prod环境的发布包启动,不要使用dev环境的发布包
  • 必须使用dev环境发布:手动将config/releases.exs拷贝到_build/dev/rel/acompanhante/etc/config.exs路径,或者关闭dev环境的dev_mode配置

可选优化

如果运行时配置只需要在生产环境生效,可以把config_providers和overlays配置挪到environment :prod块中,避免对dev环境产生影响:

environment :prod do
  set include_erts: true
  set include_src: false
  set cookie: :"OzWR<VV9?T=2o=F@9KxRTTm|CIGO/BoT9p_^D/QN6CY3}v<4?;yRjhR(v^nz1fvR"
  set vm_args: "rel/vm.args"
  # 新增以下两行
  set config_providers: [{RuntimeConfig, ["${RELEASE_ROOT_DIR}/etc/config.exs"]}]
  set overlays: [{:copy, "config/releases.exs", "etc/config.exs"}]
end

release :acompanhante do
  set version: current_version(:acompanhante)
  set applications: [
    :runtime_tools,
    :logger
  ]
end

内容的提问来源于stack exchange,提问作者Allan Duarte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:30:01