FROM node:20-slim AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # 如果有前端构建过程,例如 React/Vue # ---- Runtime 镜像 ---- FROM nginx:1.27-alpine # 安装 Node.js RUN apk add --no-cache nodejs npm WORKDIR /app # 复制 Node.js 应用 COPY --from=build /app /app # 拷贝前端静态文件到 nginx 路径 RUN mkdir -p /usr/share/nginx/html && \ cp -r /app/dist/* /usr/share/nginx/html/ # 拷贝 Nginx 配置 COPY nginx.conf /etc/nginx/nginx.conf # 启动脚本 COPY start.sh /start.sh RUN chmod +x /start.sh EXPOSE 80 CMD ["/start.sh"]