我在 PaaS (render.com) 中使用环境变量,它按预期工作。我决定自行托管我的 sebsite 并使用 Docker,但现在我的变量为空。这是我所做的:
*nuxt.config.ts*
export default defineNuxtConfig({
runtimeConfig: {
public: {
uris: {
backHost: process.env.NUXT_BACK_HOST_URL
}
}
}
})
环境文件
NUXT_BACK_HOST_URL=https://example.com
在 docker-compose.yml 文件中,对于 nuxt 服务,我使用
env_file
属性注入此 env 文件。我可以确认此步骤有效,因为直接在正在运行的容器上运行 printenv
命令,我得到:
$ docker exec -it nuxt_service printenv
> NUXT_BACK_HOST_URL=https://example.com
NODE_ENV=production
// some other variables
这表明我的运行时环境变量在我的容器中定义良好。在 nuxt 代码中,我以这种方式访问它们:
const { uris } = useRuntimeConfig().public;
const backUri = uris.backHost // empty in production!!!
.env
文件由vite服务器注入。npm run build
在 Dockerfile 中构建 nuxt 项目(但我猜这与我谈论运行时变量无关)找到答案了吗?有类似问题(