Docker容器不能填充rails应用程序的SECRET_TOKEN envvariables

我正在关注https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application从轨道docker图像创build一个示例轨道应用程序。 想法是docker化铁路应用程序。 我在dock应用程序的根目录下创build了一个.drkiq.env文件,按docker推荐的KEY = value格式,如下所示

SECRET_TOKEN=asecuretokenwouldnormallygohere WORKER_PROCESSES=1 LISTEN_ON=0.0.0.0:8000 DATABASE_URL=postgresql://drkiq:yourpassword@postgres:5432/drkiq?encoding=utf8&pool=5&timeout=5000 CACHE_URL=redis://redis:6379/0 JOB_WORKER_URL=redis://redis:6379/0 

我正在从我的docker = compose.yml文件读取环境文件(也驻留在应用程序根目录中)

 postgres: image: postgres:9.4.5 environment: POSTGRES_USER: drkiq POSTGRES_PASSWORD: yourpassword ports: - '5432:5432' volumes: - drkiq-postgres:/var/lib/postgresql/data redis: image: redis:3.0.5 ports: - '6379:6379' volumes: - drkiq-redis:/var/lib/redis/data drkiq: build: . links: - postgres - redis volumes: - .:/drkiq ports: - '8000:8000' env_file: - .drkiq.env sidekiq: build: . command: bundle exec sidekiq -C config/sidekiq.yml links: - postgres - redis volumes: - .:/drkiq env_file: - .drkiq.env 

在我的Dockerfile(驻留在应用程序根目录)里面,我正在运行独angular兽服务器

 CMD bundle exec unicorn -c config/unicorn.rb 

但是当我运行命令

 docker-compose up 

并访问http:// my-host:8000 /它给了我“RuntimeError at / Missing secret_tokensecret_key_base '开发'环境,将这些值设置为config/secrets.yml ”错误。 我不知道我在这里错过了什么。

我的错。 在我的Rails应用程序中,我实际上正在寻找SECRET_KEY_BASEvariables,但在.drkiq.env文件中(如上所示),我正在设置SECRET_TOKEN。 我用SECRET_KEY_BASEreplace了SECRET_TOKEN并重新启动了docker,每件事情都很有光泽和温暖。