在我使用酒厂进行发布的伞式项目中,我有一个具有以下内容的db
应用程序config
:
config :main, Main.Repo,
adapter: Ecto.Adapters.Postgres,
username: "${DB_USERNAME}",
password: "${DB_PASSWORD}",
database: "${DB_NAME}",
hostname: "${DB_HOST}",
pool_size: 10
正如我REPLACE_OS_VARS=true
在构建中设置的那样,正确读取环境变量会配置数据库。
app
我在具有以下配置的电子邮件中进行了类似的设置:
config :email, from_email: "${FROM_EMAIL}"
然后我希望从我的email
应用程序内部访问它,如下所示:
@from_email Application.get_env(:email, :from_email)
但是 的值@from_email
不是"${FROM_EMAIL}"
我设置的环境变量FROM_EMAIL
。
我不太熟悉酿酒厂的工作原理,也不确定以这些类似方式传入这些环境变量是如何导致读取方式不同的。
关于为什么会发生这种情况的洞察力将不胜感激。
编辑:
我们可以$FROM_EMAIL
在 distillery 编译时传递环境变量,但我们希望在运行时传递它。我们可以在db
应用程序中执行此操作,但email
由于某种原因不能在应用程序中执行此操作。