This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# ============================================
# A股智投分析平台 - 后端服务 Dockerfile
# 多阶段构建,生产环境优化
# ============================================
# 阶段1:构建阶段
FROM node:20-alpine AS builder
WORKDIR /app
# 安装必要依赖
RUN apk add --no-cache openssl
# 复制 package.json 和 package-lock.json
COPY package*.json ./
COPY prisma ./prisma/
# 安装所有依赖(包括开发依赖)
RUN npm ci
# 生成 Prisma Client
RUN npx prisma generate
# 复制源代码
COPY . .
# 编译 TypeScript
RUN npm run build
# ============================================
# 阶段2:生产阶段
FROM node:20-alpine
WORKDIR /app
# 安装必要的系统依赖
RUN apk add --no-cache openssl wget
# 创建日志目录
RUN mkdir -p logs
# 复制 package.json 和 package-lock.json
COPY package*.json ./
COPY prisma ./prisma/
# 安装生产依赖(不包含开发依赖)
RUN npm ci --only=production && npm cache clean --force