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