Dockerfile 853 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # 使用docker环境对代码进行编译
  2. FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine as builder
  3. # 安装 pnpm
  4. RUN npm install -g pnpm
  5. # 设置工作目录
  6. WORKDIR /app
  7. # 复制 package.json 和 lock 文件
  8. COPY package*.json ./
  9. COPY pnpm-lock.yaml ./
  10. # 安装依赖
  11. RUN pnpm install
  12. # 复制源代码
  13. COPY . .
  14. RUN yarn build
  15. # 将编译完成后的代码打包成dokcer镜像
  16. FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine
  17. # 安装 PM2
  18. RUN npm install -g pm2
  19. WORKDIR /app
  20. # 从构建阶段复制构建产物和必要文件
  21. COPY --from=builder /app/dist ./dist
  22. COPY --from=builder /app/package*.json ./
  23. COPY --from=builder /app/node_modules ./node_modules
  24. COPY --from=builder /app/.env ./.env
  25. # 暴露端口(根据您的应用需要修改)
  26. EXPOSE 3000
  27. # 启动应用
  28. CMD ["pm2-runtime", "dist/main.js"]