From aa431cb597dbecca3e76c74704af657c3dcf6fe1 Mon Sep 17 00:00:00 2001 From: ywp Date: Wed, 22 Oct 2025 15:07:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 252319c..019408d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,39 @@ +# ---- Build stage ---- FROM node:20-slim AS build WORKDIR /app + +# 安装依赖 COPY package*.json ./ RUN npm ci -COPY . . -RUN npm run build # 如果有前端构建过程,例如 React/Vue -# ---- Runtime 镜像 ---- +# 拷贝前端和后端 +COPY dist/ ./dist +COPY public/ ./public +COPY server/ ./server +COPY src/ ./src +COPY index.html ./ + +# 如果前端需要构建 +# RUN npm run build + +# ---- Runtime stage ---- FROM nginx:1.27-alpine -# 安装 Node.js +# 安装 Node.js 运行环境 RUN apk add --no-cache nodejs npm WORKDIR /app -# 复制 Node.js 应用 -COPY --from=build /app /app +# 拷贝 Node.js 后端 +COPY --from=build /app/server /app/server -# 拷贝前端静态文件到 nginx 路径 -RUN mkdir -p /usr/share/nginx/html && \ - cp -r /app/dist/* /usr/share/nginx/html/ +# 拷贝前端静态文件 +COPY --from=build /app/dist /usr/share/nginx/html +COPY --from=build /app/public /usr/share/nginx/html/public +COPY --from=build /app/index.html /usr/share/nginx/html/ -# 拷贝 Nginx 配置 +# Nginx 配置 COPY nginx.conf /etc/nginx/nginx.conf # 启动脚本