From 499366da0228078b9733f1e08d6601c2423726d1 Mon Sep 17 00:00:00 2001 From: huangjianwu Date: Mon, 23 Mar 2026 18:54:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(docker):=20=E4=BC=98=E5=8C=96=20Vite=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BB=A5=E6=94=AF=E6=8C=81=20Docker=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 vite.config.ts 在 Docker 环境中使用当前目录加载 .env 文件 - 在 Dockerfile 中设置 DOCKER_BUILD 环境变量 - 移除不必要的 .env.example 复制步骤 Co-Authored-By: Claude Sonnet 4.6 --- BillNote_frontend/vite.config.ts | 4 +++- Dockerfile.complete | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/BillNote_frontend/vite.config.ts b/BillNote_frontend/vite.config.ts index f598a69..f45db1b 100644 --- a/BillNote_frontend/vite.config.ts +++ b/BillNote_frontend/vite.config.ts @@ -8,7 +8,9 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)) // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { - const env = loadEnv(mode, process.cwd() + '/../') + // 在 Docker 环境中,父目录可能没有 .env 文件,使用当前目录 + const envDir = process.env.DOCKER_BUILD ? __dirname : path.resolve(__dirname, '../') + const env = loadEnv(mode, envDir) const apiBaseUrl = env.VITE_API_BASE_URL || 'http://127.0.0.1:8483' const port = parseInt(env.VITE_FRONTEND_PORT || '3015', 10) diff --git a/Dockerfile.complete b/Dockerfile.complete index 349d84e..277efc6 100644 --- a/Dockerfile.complete +++ b/Dockerfile.complete @@ -36,10 +36,10 @@ WORKDIR /tmp/frontend COPY ./BillNote_frontend/package.json ./ RUN pnpm install -# 复制 .env.example 到父目录,供 vite.config.ts 使用 -COPY ./.env.example /tmp/.env - COPY ./BillNote_frontend /tmp/frontend + +# 设置环境变量,告诉 vite.config.ts 这是 Docker 构建 +ENV DOCKER_BUILD=1 RUN pnpm run build # === 阶段3:完整应用镜像 ===