App Engine Ruby flex环境app.yaml忽略了env_variables RAILS_ENV

时间:2016-11-16 19:00:32

标签: ruby-on-rails ruby google-app-engine google-cloud-platform

我们正在使用具有Ruby灵活环境的GAE,我们正在尝试使用分段配置(即RAILS_ENV =分段)部署rails应用程序。

根据Array#sort,我们应该能够设置配置app.yaml的RAILS_ENV的值:

env_variables:
  RAILS_ENV: 'staging'

然而,当我们跑:

gcloud app deploy

使用

生成(临时)Dockerfile
# Temporary. Will be moved to base image later.
ENV RACK_ENV=production \
    RAILS_ENV=production \
    RAILS_SERVE_STATIC_FILES=true

这导致在PRODUCTION环境中部署(RAILS_ENV的默认值)。

这是一个错误还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

灵活的环境默认将RAILS_ENV设置为' production'。

https://cloud.google.com/appengine/docs/flexible/ruby/runtime#environment_variables

答案 1 :(得分:0)

env_variables下的app.yaml中设置的环境变量现在应该覆盖默认值(来自生成的Dockerfile)。

我刚刚在我的env_variables中为RAILS_ENV部署了一个sample application

env_variables:
  APP_YAML_VAR: this was set in the app.yaml
  RAILS_ENV: overridden

部署后,ENV["RAILS_ENV"]会显示我自定义的覆盖值。

Screenshot of customized environment variable