blob: e2ca05ac1593002609429e5f4d8fcfb82aa8ab0d [file] [log] [blame]
阳菜,放晴!7e1e3a52025-06-05 23:00:51 +08001# 使用官方 Node 镜像作为构建阶段的基础镜像
2FROM node:18-alpine AS builder
3
4# 设置工作目录
5WORKDIR /app
6
7# 复制依赖相关的文件
8COPY package.json package-lock.json* ./
9
10# 安装依赖 (使用 ci 而不是 install 以获得确定性构建)
11RUN npm ci
12
13# 复制项目文件
14COPY . .
15
16# 构建项目 (假设你使用 vite 或类似工具)
17RUN npm run build
18
19# 使用 Node 基础镜像作为运行时
20FROM node:18-alpine
21
22# 安装轻量级 HTTP 服务器
23RUN npm install -g serve
24
25# 设置工作目录
26WORKDIR /app
27
28# 从构建阶段复制构建好的前端文件
29COPY --from=builder /app/dist ./dist
30
31# 健康检查 (使用 wget 检查服务可用性)
32HEALTHCHECK --interval=30s --timeout=3s \
33 CMD wget --no-verbose --tries=1 --spider http://localhost:8080 || exit 1
34
35# 暴露 8080 端口
36EXPOSE 8080
37
38# 启动 HTTP 服务器 (托管 dist 目录)
39CMD ["serve", "-s", "dist", "-l", "tcp://0.0.0.0:8080"]