From 24ceec5cc37e661b7d4be34cce86a6b7e343d0bf Mon Sep 17 00:00:00 2001 From: "guangfei.zhao" Date: Mon, 27 Oct 2025 14:56:13 +0800 Subject: [PATCH] feat(docker): add flask build mode support and port configuration --- .env.flask | 6 ++++++ .env.production | 1 + Dockerfile | 29 +++++++++++++++++++++++------ package.json | 1 + 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 .env.flask diff --git a/.env.flask b/.env.flask new file mode 100644 index 0000000..ff8ff7f --- /dev/null +++ b/.env.flask @@ -0,0 +1,6 @@ +# Flask 后台服务配置 +VITE_API_BASE_URL = http://150.158.121.95 + +VITE_RSA_PUBLIC_KEY="-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB +-----END PUBLIC KEY-----" \ No newline at end of file diff --git a/.env.production b/.env.production index e7fdc6e..331faa7 100644 --- a/.env.production +++ b/.env.production @@ -1,4 +1,5 @@ # VITE_API_BASE_URL = http://150.158.121.95 +# FastAPI 后台服务配置(默认生产环境) VITE_API_BASE_URL = http://154.9.253.114:9380 VITE_RSA_PUBLIC_KEY="-----BEGIN PUBLIC KEY----- diff --git a/Dockerfile b/Dockerfile index 867926c..392516c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,9 @@ # 多阶段构建 - 构建阶段 FROM node:20-alpine AS builder +# 接受构建参数 +ARG BUILD_MODE=production + WORKDIR /app # 复制包管理文件 @@ -12,16 +15,30 @@ RUN npm install -g pnpm && pnpm install # 复制源代码 COPY . . -# 构建生产版本 -RUN pnpm build +# 根据构建模式复制对应的环境文件 +RUN if [ "$BUILD_MODE" = "flask" ]; then \ + cp .env.flask .env; \ + else \ + cp .env.production .env; \ + fi + +# 根据构建模式执行对应的构建命令 +RUN if [ "$BUILD_MODE" = "flask" ]; then \ + pnpm build:flask; \ + else \ + pnpm build; \ + fi # 生产阶段 - nginx FROM nginx:alpine AS production +# 接受端口参数,默认为5173 +ARG PORT=5173 + # 复制自定义 nginx 配置 -COPY < /etc/nginx/conf.d/default.conf << EOF server { - listen 5173; + listen ${PORT}; server_name localhost; root /usr/share/nginx/html; index index.html; @@ -53,8 +70,8 @@ EOF # 从构建阶段复制构建产物 COPY --from=builder /app/dist /usr/share/nginx/html -# 暴露端口 -EXPOSE 5173 +# 暴露端口(使用构建时指定的端口) +EXPOSE ${PORT} # 启动 nginx CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/package.json b/package.json index 6a5ba2d..6d88258 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build:flask": "tsc -b && vite build --mode flask", "lint": "eslint .", "preview": "vite preview" },