22301014 | 6abadd7 | 2025-06-05 14:21:13 +0800 | [diff] [blame] | 1 | # 构建阶段 |
22301023 | 71ee1c9 | 2025-06-05 16:18:32 +0800 | [diff] [blame^] | 2 | FROM node:23-alpine AS builder |
22301014 | 6abadd7 | 2025-06-05 14:21:13 +0800 | [diff] [blame] | 3 | WORKDIR /src |
| 4 | |
| 5 | # 安装 pnpm |
| 6 | RUN npm install -g pnpm |
| 7 | |
| 8 | # 复制依赖文件并安装 |
| 9 | COPY package.json pnpm-lock.yaml ./ |
| 10 | RUN pnpm install --frozen-lockfile |
| 11 | |
| 12 | # 复制源码并构建 |
| 13 | COPY . . |
| 14 | RUN pnpm build |
| 15 | |
| 16 | # 生产环境 |
22301023 | 71ee1c9 | 2025-06-05 16:18:32 +0800 | [diff] [blame^] | 17 | FROM nginx:1.25-alpine |
| 18 | COPY --from=builder /src/dist /usr/share/nginx/html |
22301014 | 6abadd7 | 2025-06-05 14:21:13 +0800 | [diff] [blame] | 19 | COPY 50x.html /usr/share/nginx/html |
| 20 | COPY nginx.conf /etc/nginx/conf.d/default.conf |
| 21 | EXPOSE 80 |
| 22 | CMD ["nginx", "-g", "daemon off;"] |