我们正在使用带有 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_ENV
和NODE_ENV
故意设置为“生产”。这些实际上应该被视为可以在中覆盖的默认值app.yaml
。
我已经创建了一个缺陷报告,您可以在此处标记更新:
https://code.google.com/p/google-cloud-sdk/issues/detail?id=1399
答案2
这绝对不应该发生,因为它与文档相矛盾。这应该作为一个问题发布在灵活环境 Ruby Docker 镜像的 Github 问题页面。