在Docker中使用Figaro定义的环境变量

时间:2018-08-08 15:19:39

标签: docker figaro-ruby

如果我没记错的话,似乎用Figaro定义的变量在Docker容器中不可用。 我有env个文件用于配置Postgresq数据库: POSTGRES_USER=ENV['db_user'] POSTGRES_PASSWORD=ENV['db_password] POSTGRES_DB=ENV['db_name'] 我已经将application.yml文件与所有其他Rails应用程序文件一起复制到了容器中(我可以在容器外壳中使用ls进行检查)。

这是正常行为吗?

1 个答案:

答案 0 :(得分:0)

在使用Rails应用程序时,我也遇到了这个问题。

这里要注意的是,对于 Docker ,环境变量位于.env文件或env_filemy_variables.env)中。放置在.yml.yaml文件(application.yml)中的环境文件在运行时通常不被Docker识别。以下是Docker官方文档的链接,进一步对其进行了说明:The “.env” file

这样的环境变量的示例是数据库连接字符串,这些字符串在应用程序启动过程中是必需的,例如:

database_name
database_username
database_password

但是,您仍然可以使用Figaro gem来定义应用程序启动期间不需要的变量,例如:

RAILS_MASTER_KEY

仅此而已。

我希望这会有所帮助