gpt4 book ai didi

docker - Nextjs 环境变量始终未定义

转载 作者:行者123 更新时间:2023-12-02 19:44:36 24 4
gpt4 key购买 nike

我的项目设置是这样的:

project-ci (only docker)
nextjs
backend
暂存和生产是相同的,所以我传入 docker-compose.yml仅暂存此参数的文件(两个环境都是先使用这些命令构建的 npm run build 然后 npm run start )
args:
NEXT_PUBLIC_URL: arbitrary_value
Dockerfile nextjs 的把这些命令
ARG NEXT_PUBLIC_URL
ENV NEXT_PUBLIC_URL=$NEXT_PUBLIC_URL
因此变量将可以在 nextjs 中使用 process.env.NEXT_PUBLIC_URL 访问.
到目前为止,如果我尝试 console.log(process.env.NEXT_PUBLIC_URL)index.js该值始终为 undefined .任何想法出了什么问题,还检查了文档,但结果仍然是 undefined https://nextjs.org/docs/api-reference/next.config.js/runtime-configuration
https://nextjs.org/docs/api-reference/next.config.js/environment-variables

最佳答案

您可以访问env使用公共(public)运行时配置属性的变量:
next.config.js

module.exports = {
publicRuntimeConfig: {
NEXT_PUBLIC_URL: process.env.NEXT_PUBLIC_URL,
}
};
然后:
import getConfig from "next/config";
const { publicRuntimeConfig } = getConfig();
console.log(publicRuntimeConfig.NEXT_PUBLIC_URL);
如果它不起作用,请确保在 docker 容器中创建 env 变量

关于docker - Nextjs 环境变量始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64309158/

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