小编Jos*_*tin的帖子

NextJS:防止在构建时需要 env vars

我们正在开发一个 Dockerized NextJS 应用程序,该应用程序被认为只需构建一次并部署到我们将有不同配置的多个环境中。当部署为环境变量时,此配置将在 Docker 容器中设置。

为了实现这一目标,我们使用next.config.js文件,拆分对增值经销商serverRuntimeConfigpublicRuntimeConfig所建议的在这里,和我们正在从process.env环境变量的值。IE:

module.exports = {
  serverRuntimeConfig: {
    mySecret: process.env.MY_SECRET,
    secondSecret: process.env.SECOND_SECRET,
  },
  publicRuntimeConfig: {
    staticFolder: process.env.STATIC_FOLDER_URL,
  },
}
Run Code Online (Sandbox Code Playgroud)

我们遇到的问题是这些变量不是在构建时(当我们运行时next build)设置的,因为它们是特定于环境的并且应该在部署时设置。因此,构建失败并抱怨缺少变量。

按环境进行构建不是一种选择:如前所述,我们希望构建一次(使用next build),将构建的输出放在 docker 容器中,并在多个环境中使用该 docker 容器部署。

有没有办法解决这个问题,以便应用程序在没有环境变量的情况下构建,然后我们在运行时(部署)传递它们?

docker next.js

5
推荐指数
1
解决办法
457
查看次数

标签 统计

docker ×1

next.js ×1