Bash 将Docker ENV变量传递给rails应用程序

Bash 将Docker ENV变量传递给rails应用程序,bash,mongodb,ruby-on-rails-4,docker,environment-variables,Bash,Mongodb,Ruby On Rails 4,Docker,Environment Variables,我正在使用docker容器测试rails应用程序。我试图做的是在运行时使用-e标志传递ENV变量,如下所示: docker run-p3000:3000-d-e“docker\u HOST=$(ip-4 addr show docker0 | grep-Po'inet\K[\d.]+')”somerepo/image:tag。我知道这是可行的,因为当我猛击容器并运行env时,我得到了正确的变量集: $ env HOSTNAME=1641e2f6c81f GEM_HOME=/usr/local/b

我正在使用docker容器测试rails应用程序。我试图做的是在运行时使用
-e
标志传递
ENV
变量,如下所示:
docker run-p3000:3000-d-e“docker\u HOST=$(ip-4 addr show docker0 | grep-Po'inet\K[\d.]+')”somerepo/image:tag
。我知道这是可行的,因为当我猛击容器并运行
env
时,我得到了正确的变量集:

$ 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:
尝试获取数据库记录时,我遇到以下mongodb错误:

App 10040标准输出:D[2016-01-10T11:40:07.085516#10040]调试--:MONGODB | getaddrinfo:名称或服务未知


这说明应用程序中未设置该值。如何在
mongoid.yml
配置文件中正确传递此信息?

mongoid.yml
中使用环境变量值的语法是:

production:
  clients:
    default:
      database: somerailsdb
      hosts:
        - <%= ENV['DOCKER_HOST'] %>:27017
      options:
  options:
生产:
客户:
违约:
数据库:somerailsdb
主持人:
- :27017
选项:
选项: