【问题标题】:Consume Cloud Run environment variables inside Nextjs app在 Nextjs 应用中使用 Cloud Run 环境变量
【发布时间】:2021-07-23 09:22:29
【问题描述】:

我最近构建了一个 Nextjs 应用,并将其托管在 Google Cloud Run 上。

我的应用通过 getStaticProps() 方法向外部 API 发出一些请求。

我希望能够根据环境(例如 prod 或 dev)使用为每个环境设置不同的环境变量来指向不同的 API 主机。

我知道我可以将这些变量存储在特定于环境的文件中,例如 .env.development.env.production 但是我希望能够将这些环境变量存储在 Google Cloud 控制台的环境变量字段中,以用于云运行服务和完全跳过将它们存储在文件中。

我尝试将变量添加到 Cloud Run,但它不起作用。我也尝试用 NEXT_PUBLIC_ 为变量添加前缀...但没有运气。

有没有人对如何做到这一点有任何提示?

【问题讨论】:

    标签: reactjs environment-variables next.js google-cloud-run


    【解决方案1】:

    好的...我想我现在已经想通了。 我使用 Cloud Builds 构建容器,容器在运行 npm run start 之前运行 npm run build

    我假设我的 Cloud Run 变量在 Cloud Build 构建项目时不可用。

    所以,我认为我的解决方案是尝试在构建时使用替换变量注入变量。

    编辑:确认。如果我在开发模式下启动 Nextjs,以便为每个请求在服务器上呈现页面,则使用 Cloud Run 环境变量。 为了构建用于生产的 Nextjs 应用,我将环境变量包含在 Cloud Build 构建的 Dockerfile 中

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 2022-10-02
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      相关资源
      最近更新 更多