如果我没记错的话,似乎用Figaro定义的变量在Docker容器中不可用。
我有env
个文件用于配置Postgresq数据库:
POSTGRES_USER=ENV['db_user']
POSTGRES_PASSWORD=ENV['db_password]
POSTGRES_DB=ENV['db_name']
我已经将application.yml
文件与所有其他Rails应用程序文件一起复制到了容器中(我可以在容器外壳中使用ls
进行检查)。
这是正常行为吗?
答案 0 :(得分:0)
在使用Rails应用程序时,我也遇到了这个问题。
这里要注意的是,对于 Docker ,环境变量位于.env
文件或env_file
(my_variables.env
)中。放置在.yml
或.yaml
文件(application.yml
)中的环境文件在运行时通常不被Docker识别。以下是Docker官方文档的链接,进一步对其进行了说明:The “.env” file
这样的环境变量的示例是数据库连接字符串,这些字符串在应用程序启动过程中是必需的,例如:
database_name
database_username
database_password
但是,您仍然可以使用Figaro gem来定义应用程序启动期间不需要的变量,例如:
RAILS_MASTER_KEY
仅此而已。
我希望这会有所帮助