首页 > 解决方案 > 在 Google App Engine 上部署时将变量传递给 package.json 中的 gcp-build 方法

问题描述

我已成功将 nextjs 站点部署到谷歌应用程序引擎,但是我想通过 env_variable 到 app.yaml 来设置生产和暂存构建。

我在 GAE 文档中看不到如何执行此操作,并且 env_variables 似乎没有发送到gcp-build命令。

请参阅下面的配置:

# app.yaml

runtime: nodejs
env: flex
service: ss-test

env_variables:
  SS_ENV: 'production-test'
# package.json
{
  ...
  "scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js",
    "gcp-build": "next build", <<<<< I want to pass through the SS_ENV variable from app.yaml here
    "deploy:production": "gcloud app deploy"
  },
  ...
}

任何想法我做错了什么,或者这不可能吗?

在此先感谢,我在墙上撞了几个小时!亚历克斯

标签: google-app-engineenvironment-variablesnext.jspackage.json

解决方案


扩展您之前关于云构建使用的答案。对于您的问题,我可以理解您正在尝试使用此处记录的“自定义构建步骤”选项。这仅在应用程序启动之前在部署期间处理和使依赖项可用时有用。

使用 Cloud Build 时。您可以使用 gcloud builder创建一个专门的构建步骤,以使用所需的配置部署您的 GAE。要了解更多关于 gcloud builder 的信息,您可以阅读这篇文章。

所需的配置应在 app.yaml 中声明。有关 app.yaml 的更多信息可以在这里找到。


推荐阅读