oauth_nest_demo/Dockerfile

43 lines
620 B
Docker

# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
# 安装 pnpm
RUN npm install -g pnpm
# 复制依赖文件
COPY package.json pnpm-lock.yaml ./
# 安装依赖
RUN pnpm install --frozen-lockfile
# 复制源码
COPY . .
# 构建
RUN pnpm run build
# 生产阶段
FROM node:18-alpine
WORKDIR /app
# 安装 pnpm
RUN npm install -g pnpm
# 复制依赖文件
COPY package.json pnpm-lock.yaml ./
# 只安装生产依赖
RUN pnpm install --prod --frozen-lockfile
# 从构建阶段复制构建产物
COPY --from=builder /app/dist ./dist
# 暴露端口
EXPOSE 3000
# 启动应用
CMD ["node", "dist/main"]