使用 Docker 注入时,Nuxt3 环境变量在生产中为空

问题描述 投票:0回答:1

我在 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服务器注入。
  • 正如我所说,使用 PaaS 托管服务时,完全相同的 nuxt 代码和环境正在工作
  • 我在 SSR 中使用我的网站(不是 SPA 模式),除了在单个页面中,所以这不是问题
  • 我使用
    npm run build
    在 Dockerfile 中构建 nuxt 项目(但我猜这与我谈论运行时变量无关)
docker vue.js environment-variables nuxt.js nuxt3
1个回答
0
投票

找到答案了吗?有类似问题(

© www.soinside.com 2019 - 2024. All rights reserved.