Dockerfile 740 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # 构建阶段
  2. FROM node:18-alpine as builder
  3. # 安装 pnpm
  4. RUN npm install -g pnpm
  5. # 安装 yarn
  6. RUN npm install -g yarn
  7. # 设置工作目录
  8. WORKDIR /app
  9. # 复制 package.json 和 lock 文件
  10. COPY package*.json ./
  11. COPY pnpm-lock.yaml ./
  12. COPY yarn.lock ./
  13. # 安装依赖
  14. RUN pnpm install
  15. # 复制源代码
  16. COPY . .
  17. # 构建应用
  18. RUN yarn build
  19. # 运行阶段
  20. FROM node:18-alpine
  21. # 安装 PM2
  22. RUN npm install -g pm2
  23. WORKDIR /app
  24. # 从构建阶段复制构建产物和必要文件
  25. COPY --from=builder /app/dist ./dist
  26. COPY --from=builder /app/package*.json ./
  27. COPY --from=builder /app/node_modules ./node_modules
  28. # 暴露端口(根据您的应用需要修改)
  29. EXPOSE 3000
  30. # 启动应用
  31. CMD ["pm2-runtime", "dist/main.js"]