【问题标题】:Docker container is not able to populate SECRET_TOKEN env variable for rails appDocker 容器无法填充 Rails 应用程序的 SECRET_TOKEN 环境变量
【发布时间】:2016-01-20 03:52:13
【问题描述】:

我正在关注 https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application 从 rails docker 映像创建示例 rails 应用程序。想法是将铁路应用程序码头化。我在 Rails 应用程序根目录中创建了一个 .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(位于应用根目录)中,我正在运行独角兽服务器

CMD bundle exec unicorn -c config/unicorn.rb

但是当我运行命令时

docker-compose up

并访问http://my-host:8000/ 它给了我“RuntimeError at / 缺少 secret_tokensecret_key_base 用于“开发”环境,在 config/secrets.yml" 错误中设置这些值。我不确定我在这里缺少什么。

【问题讨论】:

    标签: ruby-on-rails docker


    【解决方案1】:

    我的错。在我的 Rails 应用程序中,我实际上是在寻找 SECRET_KEY_BASE 变量,但在 .drkiq.env 文件(如上粘贴)中,我正在设置 SECRET_TOKEN。我用 SECRET_KEY_BASE 替换了 SECRET_TOKEN 并重新启动了 docker,一切都变得闪亮而温暖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2018-12-03
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多