将Docker ENVvariables传递给Rails应用程序
我正在testing一个利用docker集装箱的铁路应用程序。 我试图做的是传递一个ENV
variables运行使用-e
标志,如下所示: docker run -p 3000:3000 -d -e "DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')" somerepo/image:tag
。 这是我知道的,因为当我撞到容器并运行env
我得到正确的variables集:
$ env HOSTNAME=1641e2f6c81f GEM_HOME=/usr/local/bundle DOCKER_HOST=172.17.0.1 ...
当我尝试在rails应用程序中设置mongoid.yml
,如下所示:
production: clients: default: database: somerailsdb hosts: - ${DOCKER_HOST}:27017 options: options:
当我尝试获取数据库logging时,出现以下mongodb错误:
App 10040 stdout: D, [2016-01-10T11:40:07.085516 #10040] DEBUG -- : MONGODB | getaddrinfo: Name or service not known
这告诉我,价值不是在应用程序中设置。 如何在mongoid.yml
configuration文件中正确传递这个信息?
在mongoid.yml
使用环境variables值的mongoid.yml
是:
production: clients: default: database: somerailsdb hosts: - <%= ENV['DOCKER_HOST'] %>:27017 options: options: