优化 Docker 配置

主要变更:
- 升级基础镜像从 Node.js 20 到 Node.js 24
- 优化 Dockerfile 权限设置(start.sh 从 777 改为 755)
- 简化 docker-compose.yml 配置,移除 nginx 服务
- 添加 command 指定启动脚本

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-30 09:50:14 +08:00
parent c4c08cb59b
commit 676e1a5f7d
2 changed files with 17 additions and 25 deletions
+15 -10
View File
@@ -1,31 +1,36 @@
# 使用Node.js 20作为基础镜像
FROM node:20-alpine
# 使用 Node.js 24 作为基础镜像Alpine 版)
FROM node:24-alpine
# 设置工作目录
WORKDIR /app
# 安装PM2全局
# 安装 PM2 全局
RUN npm install -g pm2
# 安装pnpm
# 安装 pnpm
RUN npm install -g pnpm
# 复制项目文件
COPY . .
# 安装项目依赖
# 安装项目依赖(建议使用 pnpm,但你写的是 npm install .
# 如果项目用 pnpm,请改为:RUN pnpm install --frozen-lockfile
RUN npm install .
# 创建logs目录
# 设置 node_modules/.bin 目录的执行权限(通常不需要,但保留)
RUN chmod -R +x node_modules/.bin
# 创建 logs 目录
RUN mkdir -p logs
# 暴露端口(根据pm2配置,需要暴露51703-51708端口)
# 暴露端口
EXPOSE 51703 51704 51705 51706 51707 51708
# 设置环境变量
ENV NODE_ENV=production
RUN chmod 777 ./start.sh
# CMD ["npm", "run", "start:pm2:multi"]
# 启动命令 - 使用tail阻塞容器
# 确保 start.sh 可执行(777 权限过大,建议 755)
RUN chmod +x ./start.sh
# 启动命令
CMD ["./start.sh"]
+2 -15
View File
@@ -2,6 +2,7 @@ services:
docreview:
build: .
container_name: docreview-app
command: ["/bin/sh", "./start.sh"]
ports:
- "51703:51703" # 主服务
- "51704:51704" # 潮州客户端
@@ -13,21 +14,7 @@ services:
- NODE_ENV=production
volumes:
- .:/app # 挂载整个项目目录
- /app/node_modules # 排除node_modules,使用容器内的
restart: unless-stopped
networks:
- docreview-network
depends_on:
- nginx
nginx:
image: nginx:alpine
container_name: docreview-nginx
ports:
- "8080:80"
- "443:443"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d/:ro
#- /app/node_modules # 排除node_modules,使用容器内的
restart: unless-stopped
networks:
- docreview-network