diff --git a/Dockerfile b/Dockerfile index e8caf18..9459d36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0307234..8bede48 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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