- 新增项目文档和 Docker 配置 - 添加 README.md 和 TODO.md 项目文档 - 为各服务添加 Dockerfile 和 docker-compose 配置 - 重构后端架构 - 新增 adapter 层(HTTP/Python 适配器) - 新增 repository 层(数据访问抽象) - 新增 router 模块统一管理路由 - 新增账单处理 handler - 扩展前端 UI 组件库 - 新增 Calendar、DateRangePicker、Drawer、Popover 等组件 - 集成 shadcn-svelte 组件库 - 增强分析页面功能 - 添加时间范围筛选器(支持本月默认值) - 修复 DateRangePicker 默认值显示问题 - 优化数据获取和展示逻辑 - 完善分析器服务 - 新增 FastAPI 服务接口 - 改进账单清理器实现
50 lines
1.1 KiB
Docker
50 lines
1.1 KiB
Docker
# Go 服务 Dockerfile
|
|
# 多阶段构建:编译阶段 + 运行阶段
|
|
|
|
# ===== 编译阶段 =====
|
|
FROM golang:1.21-alpine AS builder
|
|
|
|
WORKDIR /build
|
|
|
|
# 配置 Go 代理(国内镜像)
|
|
ENV GOPROXY=https://goproxy.cn,direct
|
|
|
|
# 先复制依赖文件,利用 Docker 缓存
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
# 复制源代码并编译
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o billai-server .
|
|
|
|
# ===== 运行阶段 =====
|
|
FROM alpine:latest
|
|
|
|
WORKDIR /app
|
|
|
|
# 配置 Alpine 镜像源(国内)
|
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|
|
|
# 安装必要工具
|
|
RUN apk --no-cache add ca-certificates tzdata curl
|
|
|
|
# 设置时区
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
# 从编译阶段复制二进制文件
|
|
COPY --from=builder /build/billai-server .
|
|
COPY --from=builder /build/config.yaml .
|
|
|
|
# 创建必要目录
|
|
RUN mkdir -p uploads outputs
|
|
|
|
# 暴露端口
|
|
EXPOSE 8080
|
|
|
|
# 健康检查
|
|
HEALTHCHECK --interval=10s --timeout=5s --retries=5 \
|
|
CMD curl -f http://localhost:8080/health || exit 1
|
|
|
|
# 启动服务
|
|
CMD ["./billai-server"]
|