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