# Docker部署 - Nginx动态路由模式 # 所有项目通过同一个端口访问,通过路径区分 FROM node:18-alpine # 安装Nginx RUN apk add --no-cache nginx WORKDIR /app # 复制package文件并安装依赖 COPY package*.json ./ RUN npm install --production # 复制后端代码 COPY server ./server # 复制前端构建产物 COPY client/dist ./client/dist # 创建必要的目录 RUN mkdir -p /app/data /app/projects /app/nginx/sites-enabled /run/nginx # 复制Nginx配置模板 COPY server/templates ./server/templates # 复制启动脚本 COPY deploy/start-nginx.sh /start-nginx.sh RUN chmod +x /start-nginx.sh # 只暴露一个端口 EXPOSE 80 # 启动Nginx和Node.js服务 CMD ["/start-nginx.sh"]