gpt4 book ai didi

docker - 下一个JS : Prevent env vars to be required on build time

转载 作者:行者123 更新时间:2023-12-02 18:07:07 25 4
gpt4 key购买 nike

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

为了实现这一点,我们使用 next.config.js 文件,在 serverRuntimeConfig 上拆分变量。和 publicRuntimeConfig按照建议 here ,我们正在从 process.env 获取环境变量的值。 IE。:

module.exports = {
serverRuntimeConfig: {
mySecret: process.env.MY_SECRET,
secondSecret: process.env.SECOND_SECRET,
},
publicRuntimeConfig: {
staticFolder: process.env.STATIC_FOLDER_URL,
},
}

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

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

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

最佳答案

我们终于找到了问题所在。

我们在同构端使用的助手中导入代码,并在 serverRuntimeConfig 变量上进行中继,然后在构建时需要以创建包。

从助手中删除导入解决了这个问题。

关于docker - 下一个JS : Prevent env vars to be required on build time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60871862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com