Docker
Change-Id: I2aefd96a43bcf3a3c41c079ecfc04a3fee48bed6
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..e2ca05a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,39 @@
+# 使用官方 Node 镜像作为构建阶段的基础镜像
+FROM node:18-alpine AS builder
+
+# 设置工作目录
+WORKDIR /app
+
+# 复制依赖相关的文件
+COPY package.json package-lock.json* ./
+
+# 安装依赖 (使用 ci 而不是 install 以获得确定性构建)
+RUN npm ci
+
+# 复制项目文件
+COPY . .
+
+# 构建项目 (假设你使用 vite 或类似工具)
+RUN npm run build
+
+# 使用 Node 基础镜像作为运行时
+FROM node:18-alpine
+
+# 安装轻量级 HTTP 服务器
+RUN npm install -g serve
+
+# 设置工作目录
+WORKDIR /app
+
+# 从构建阶段复制构建好的前端文件
+COPY --from=builder /app/dist ./dist
+
+# 健康检查 (使用 wget 检查服务可用性)
+HEALTHCHECK --interval=30s --timeout=3s \
+ CMD wget --no-verbose --tries=1 --spider http://localhost:8080 || exit 1
+
+# 暴露 8080 端口
+EXPOSE 8080
+
+# 启动 HTTP 服务器 (托管 dist 目录)
+CMD ["serve", "-s", "dist", "-l", "tcp://0.0.0.0:8080"]
\ No newline at end of file