如果我用docker-compose和环境变量在本地构建和运行nuxt 3应用程序,它会运行得很好。
但是当我将构建的Docker映像推送到远程生产环境时,我无法在runtimeConfig中应用生产环境变量,可能是因为在构建阶段,process.env[“SECRET_KEY”]被替换为“真实的的密钥”。
如果我将环境变量命名为NUXT_PUBLIC_XXXX / NUXT_XXXX,那么即使在构建映像之后,我也能够更新runtimeConfig。
但是,当我使用PaaS服务进行生产部署时,我无法控制变量命名。因此,我无法为远程环境动态提供正确的运行时配置-〉* 我总是以本地值结束,这些值是在构建阶段在本地计算机上设置的。*(请参见下面示例中的clientID)
**是否有一种方法可以在映像构建之后通过process.env[“customenvname”]设置运行时配置?**或者您是否有其他方法可以动态地提供运行时配置?(我希望避免为每个环境构建单独的容器
非常感谢您的投入。任何帮助都是非常感谢的!
#nuxt.config.ts
...
runtimeConfig: {
#in production ENVs are accessible under the key "VCAP_SERVICES", if key is not present the local development env is applied
clientId: process.env["VCAP_SERVICES"] ? process.env["VCAP_SERVICES"]["clientId"] : process.env["UAA_CLIENT_ID"],
secretKey: process.env["NUXT_SECRET_KEY"]
public: {
backendApi: 'http://127.0.0.1:5000', // will be overridden by NUXT_PUBLIC_BACKEND_API environment variable
environment: "production", // will be overridden by NUXT_PUBLIC_ENVIRONMENT environment variable
}
},
1条答案
按热度按时间r6vfmomb1#
在构建Docker映像之后设置环境变量确实是可能的。我的问题是,我试图解析process.env.VCAP_SERVICES(而不是process.env[“VCAP_SERVICES”]),结果得到了一个未定义的值。