From 6c2ab8b4141896b1b5f57d5336d7c6236f554777 Mon Sep 17 00:00:00 2001 From: xudw Date: Mon, 9 Mar 2026 14:05:45 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E5=89=8D=E7=AB=AFDo?= =?UTF-8?q?ckerfile=E6=94=AF=E6=8C=81Vue=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加Node.js构建阶段 - 支持Vue应用的生产构建 - 使用多阶段构建优化镜像大小 - 配置Nginx服务生产构建文件 --- docker/Dockerfile.frontend | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile.frontend b/docker/Dockerfile.frontend index 34fbdff..191c02a 100644 --- a/docker/Dockerfile.frontend +++ b/docker/Dockerfile.frontend @@ -1,11 +1,29 @@ -# 使用Nginx作为生产服务器 +# 构建阶段 +FROM node:18-alpine as build + +# 设置工作目录 +WORKDIR /app + +# 复制package.json和package-lock.json +COPY frontend/package*.json ./ + +# 安装依赖 +RUN npm ci --only=production + +# 复制源代码 +COPY frontend/ . + +# 构建应用 +RUN npm run build + +# 生产阶段 FROM nginx:alpine # 复制Nginx配置 COPY docker/nginx.conf /etc/nginx/nginx.conf -# 复制静态HTML文件 -COPY frontend/index.html /usr/share/nginx/html/ +# 从构建阶段复制构建好的文件 +COPY --from=build /app/dist /usr/share/nginx/html # 暴露端口 EXPOSE 80