将Docker ENVvariables传递给Rails应用程序

我正在testing一个利用docker集装箱的铁路应用程序。 我试图做的是传递一个ENVvariables运行使用-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.ymlconfiguration文件中正确传递这个信息?

mongoid.yml使用环境variables值的mongoid.yml是:

 production: clients: default: database: somerailsdb hosts: - <%= ENV['DOCKER_HOST'] %>:27017 options: options: