【发布时间】:2016-05-19 04:55:30
【问题描述】:
在我的远程 EC2 实例上编辑 /etc/environment 文件后,如何让我的 rails 应用了解新的环境变量?
我经常在 secrets.yml 中添加新的(次要)内容,但我不想为此重新启动服务器,也不想使用现有的秘密。
【问题讨论】:
-
反对者是否愿意发表评论?
-
显然答案是,不可能:(
在我的远程 EC2 实例上编辑 /etc/environment 文件后,如何让我的 rails 应用了解新的环境变量?
我经常在 secrets.yml 中添加新的(次要)内容,但我不想为此重新启动服务器,也不想使用现有的秘密。
【问题讨论】:
您应该可以在config/spring.rb 中添加一行:
Spring.watch "config/secrets.yml"
这将允许 Spring 检测您的 secrets.yml 文件何时发生更改。
但是,如果您实际上是在询问如何让您的应用知道您已更改文件中的环境变量,那么这是不可能的。可以在文件中检测到配置值,但在 shell 环境中检测到环境变量。您必须将它们加载到您的 shell 中才能使它们生效,这需要停止您的服务器,将新的更改引入环境,然后重新启动服务器。
了解文件(.yml、.xml、.ini 等)中的配置值与 shell 脚本中的环境变量之间的区别很重要,因为它的应用和使用方式完全不同。
【讨论】: