Files
billai/web/Dockerfile
cheliangzhao 087ae027cc feat: 完善项目架构并增强分析页面功能
- 新增项目文档和 Docker 配置
  - 添加 README.md 和 TODO.md 项目文档
  - 为各服务添加 Dockerfile 和 docker-compose 配置

- 重构后端架构
  - 新增 adapter 层(HTTP/Python 适配器)
  - 新增 repository 层(数据访问抽象)
  - 新增 router 模块统一管理路由
  - 新增账单处理 handler

- 扩展前端 UI 组件库
  - 新增 Calendar、DateRangePicker、Drawer、Popover 等组件
  - 集成 shadcn-svelte 组件库

- 增强分析页面功能
  - 添加时间范围筛选器(支持本月默认值)
  - 修复 DateRangePicker 默认值显示问题
  - 优化数据获取和展示逻辑

- 完善分析器服务
  - 新增 FastAPI 服务接口
  - 改进账单清理器实现
2026-01-10 01:23:36 +08:00

57 lines
1.1 KiB
Docker

# SvelteKit Web 前端 Dockerfile
# 多阶段构建:构建阶段 + 运行阶段
# ===== 构建阶段 =====
FROM node:20-alpine AS builder
WORKDIR /app
# 配置 yarn 镜像源(国内)
RUN yarn config set registry https://registry.npmmirror.com
# 先复制依赖文件,利用 Docker 缓存
COPY package.json yarn.lock* ./
# 安装依赖
RUN yarn install --frozen-lockfile || yarn install
# 复制源代码
COPY . .
# 构建生产版本
RUN yarn build
# ===== 运行阶段 =====
FROM node:20-alpine
WORKDIR /app
# 配置 Alpine 镜像源(国内)
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装必要工具
RUN apk --no-cache add curl
# 设置时区
ENV TZ=Asia/Shanghai
# 设置为生产环境
ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=3000
# 从构建阶段复制构建产物和依赖
COPY --from=builder /app/build ./build
COPY --from=builder /app/package.json ./
COPY --from=builder /app/node_modules ./node_modules
# 暴露端口
EXPOSE 3000
# 健康检查
HEALTHCHECK --interval=10s --timeout=5s --retries=5 \
CMD curl -f http://localhost:3000 || exit 1
# 启动服务
CMD ["node", "build"]