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

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

我们正在使用带有 Ruby 灵活环境的 GAE,并且我们正在尝试部署带有暂存配置的 rails 应用程序(即 RAILS_ENV=staging)。

根据https://cloud.google.com/appengine/docs/flexible/ruby/configuring-your-app-with-app-yaml我们应该能够通过配置 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 的默认值)。

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

答案1

这实际上看起来像是一个错误功能,因为概述文档指出,像RAILS_ENVNODE_ENV故意设置为“生产”。这些实际上应该被视为可以在中覆盖的默认值app.yaml

我已经创建了一个缺陷报告,您可以在此处标记更新:
https://code.google.com/p/google-cloud-sdk/issues/detail?id=1399

答案2

这绝对不应该发生,因为它与文档相矛盾。这应该作为一个问题发布在灵活环境 Ruby Docker 镜像的 Github 问题页面

相关内容