Files
ruoyi-plus-vben5/scripts/deploy/Dockerfile
dap 154c8b664b fix(deploy): 修复 Docker 构建路径和优化 Nginx 配置
修复 Dockerfile 中构建产物复制路径错误,将 `/app/playground/dist` 更正为 `/app/apps/web-antd/dist`。
优化 Nginx 配置,增加安全设置、性能调优和代理规则,并移除冗余的 MIME 类型配置。
调整公告列表列对齐方式以改善界面一致性。
2026-01-27 20:14:17 +08:00

48 lines
1.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ==============================
# Stage 1: 构建阶段
# ==============================
FROM node:22-slim AS builder
# 设置环境变量
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
# 增加内存限制以防止构建大型项目时 OOM
ENV NODE_OPTIONS=--max-old-space-size=8192
# 启用 corepack 以使用 pnpm
RUN npm i -g corepack
WORKDIR /app
# 复制项目文件
COPY . .
# 安装依赖
# --frozen-lockfile: 确保使用 lock 文件中的版本
# --mount=type=cache: 缓存 pnpm 存储,加速后续构建
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
# 构建 web-antd 应用
# 使用 filter 只构建需要的应用,避免构建整个 monorepo
RUN pnpm run build --filter=@vben/web-antd
# ==============================
# Stage 2: 生产环境运行阶段
# ==============================
FROM nginx:stable-alpine AS production
# 清理默认配置并复制自定义 Nginx 配置
# 这里复用了 scripts/deploy/nginx.conf它监听 8080 端口
RUN rm -rf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/scripts/deploy/nginx.conf /etc/nginx/nginx.conf
# 复制构建产物到 Nginx 目录
# Vite 默认构建输出在 apps/web-antd/dist
COPY --from=builder /app/apps/web-antd/dist /usr/share/nginx/html
# 暴露端口 (与 nginx.conf 保持一致)
EXPOSE 80
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]