32 lines
612 B
Docker
32 lines
612 B
Docker
FROM node:24
|
|
|
|
WORKDIR /app
|
|
|
|
# 安装 pnpm
|
|
RUN npm install -g pnpm
|
|
|
|
# 复制 package.json 和 pnpm-lock.yaml
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
# 安装依赖(包含 devDependencies 用于构建)
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# 复制源代码
|
|
COPY . .
|
|
|
|
# 修复 Windows 换行符问题
|
|
RUN sed -i 's/\r$//' start.sh
|
|
|
|
# 构建应用
|
|
RUN pnpm run build:production:multi
|
|
|
|
# 安装 PM2
|
|
RUN npm install -g pm2
|
|
|
|
EXPOSE 51703-51708
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
# 直接启动 PM2,不需要重新构建(构建已在上面完成)
|
|
CMD ["pm2-runtime", "start", "ecosystem.config.cjs", "--env", "production"]
|