首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么edeliver在重启时生成错误的sys.config

为什么edeliver在重启时生成错误的sys.config
EN

Stack Overflow用户
提问于 2019-11-25 18:28:58
回答 1查看 46关注 0票数 1

我的目标是向Elixir/Phoenix应用程序添加一个新的应用程序环境变量,该应用程序随酿酒厂一起发布,并与edeliver一起部署。

因为我已经向prod.secret.exs文件添加了一个新值,所以当我在生产主机上调用Application.get_env(:my_app, :key)时,我希望新的环境变量不是nil

相反,我得到了nil。我应用的修复方法是停止应用程序,删除所有内容,然后部署一个全新的版本。我猜这不是正确的修复方法。

那么,如何正确添加新的配置变量呢?

到目前为止我注意到的是。我将所需的配置放到prod.secret.exs文件中,distillery在构建过程中成功地使用了它。在生成的版本中,sys.config文件包含新的配置变量。但是部署的应用的var/sys.config文件不包含新的配置。如果我手动将新配置添加到var/sys.config并重新启动发行版,则会重新生成var/sys.config,而不会重新生成新的配置变量。

EN

回答 1

Stack Overflow用户

发布于 2019-11-25 20:11:20

混合配置是编译时配置,这意味着如果您在配置中获取环境变量,这将在项目的编译阶段完成。

因此,在您构建项目时,它会查看环境变量并将其硬编码到已编译的二进制文件中。在每次运行时,它都会查看之前已经获取的那些值。

Elixir 1.9通过Config引入了发布配置,并且distillery支持它,你可以在我的answers中阅读更多关于这方面的详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59029726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档