|
@@ -0,0 +1,40 @@
|
|
|
+# 使用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
|
|
|
+
|
|
|
+# 暴露端口(根据您的应用需要修改)
|
|
|
+EXPOSE 3000
|
|
|
+
|
|
|
+# 启动应用
|
|
|
+CMD ["pm2-runtime", "dist/main.js"]
|