# --- Build Stage ---
  FROM golang:1.22-alpine AS builder

  # 安装构建依赖 (git 等)
  RUN apk add --no-cache git
  
  WORKDIR /app
  
  # 预先下载依赖，利用 Docker 缓存层
  COPY go.mod go.sum ./
  RUN go mod download
  
  # 复制源代码
  COPY . .
  
  # 编译 (CGO_ENABLED=0 静态链接)
  RUN CGO_ENABLED=0 GOOS=linux go build -o chainsql ./cmd/chainsql/main.go
  
  # --- Final Stage ---
  FROM alpine:3.19
  
  WORKDIR /app
  
  # 安装必要的运行时库 (CA 证书用于 HTTPS 请求)
  RUN apk add --no-cache ca-certificates tzdata
  
  # 从 Build 阶段复制二进制文件
  COPY --from=builder /app/chainsql .
  
  # 复制配置文件 (注意：生产环境通常挂载 ConfigMap，这里作为默认值)
  COPY configs/ ./configs/
  
  # 暴露端口 (如果有 HTTP 服务的话)
  # EXPOSE 8080
  
  # 运行
  CMD ["./chainsql"]