File size: 723 Bytes
539e109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2359a48
539e109
2359a48
539e109
2359a48
 
539e109
2359a48
 
539e109
 
 
2359a48
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# ==== Stage 1: 构建阶段 (Builder) ====
FROM node:22-alpine AS builder

WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci

COPY tsconfig.json ./
COPY src ./src
RUN npm run build

# ==== Stage 2: 生产运行阶段 (Runner) ====
FROM node:22-alpine AS runner

WORKDIR /app

ENV NODE_ENV=production
ENV PORT=7860

# 安装生产依赖
COPY package.json package-lock.json ./
RUN npm ci --omit=dev && npm cache clean --force

# 从 builder 阶段拷贝编译产物
COPY --from=builder /app/dist ./dist

# 拷贝默认配置文件
COPY config.yaml ./config.yaml

EXPOSE 7860

# 直接用 node 启动(不经过 npm),确保信号正确传递
CMD ["node", "dist/index.js"]