From 063c5d2540869005dc6a634af7cd0bd6601b8130 Mon Sep 17 00:00:00 2001 From: "CJACK." Date: Wed, 4 Feb 2026 19:40:34 +0800 Subject: [PATCH] Build WebUI in Docker image --- DEPLOY.md | 1 + Dockerfile | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/DEPLOY.md b/DEPLOY.md index ba31f2a..0fd87bc 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -154,6 +154,7 @@ npm run build Docker 部署采用**零侵入、解耦设计**: - Dockerfile 仅执行标准 Python 项目操作,不硬编码任何项目特定配置 +- 构建镜像时会一并构建 WebUI(便于非 Vercel 部署直接访问管理面板) - 所有配置通过环境变量和 `.env` 文件管理 - **主代码更新时只需重新构建镜像,无需修改 Docker 配置** diff --git a/Dockerfile b/Dockerfile index 7245e3a..542feaa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,16 @@ # 采用极简、零侵入设计,所有配置通过环境变量传递 # 主代码更新时只需重新构建镜像,无需修改 Dockerfile +FROM node:20 AS webui-builder + +WORKDIR /app/webui + +COPY webui/package.json webui/package-lock.json ./ +RUN npm ci + +COPY webui ./ +RUN npm run build + FROM python:3.11-slim WORKDIR /app @@ -13,6 +23,9 @@ RUN pip install --no-cache-dir -r requirements.txt # 复制整个项目(保留原始目录结构) COPY . . +# 拷贝 WebUI 构建产物(非 Vercel / Docker 部署可直接使用) +COPY --from=webui-builder /app/static/admin /app/static/admin + # 暴露服务端口 EXPOSE 5001