# 构建阶段 - 使用 Debian 基础镜像
FROM golang:1.22-bookworm AS builder

# 安装 OpenCV 和编译工具
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    g++ \
    libopencv-dev \
    pkg-config \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# 复制源代码
COPY . .

# 设置 CGO 编译标志 - OpenCV 4 头文件路径
ENV CGO_ENABLED=1
ENV CGO_CFLAGS="-I/usr/include/opencv4"
ENV CGO_LDFLAGS="-lopencv_core -lopencv_imgproc -lopencv_imgcodecs"

# 构建
RUN go mod download || true
RUN go build -ldflags="-s -w" -o anticaptcha ./cmd/server

# 运行阶段
FROM debian:bookworm-slim

# 安装运行时依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    tzdata \
    libopencv-core406 \
    libopencv-imgproc406 \
    libopencv-imgcodecs406 \
    libstdc++6 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# 复制二进制文件和前端
COPY --from=builder /app/anticaptcha .
COPY --from=builder /app/web/dist ./web/dist

# 创建目录
RUN mkdir -p /app/data /app/models

ENV GIN_MODE=release
ENV TZ=Asia/Shanghai

EXPOSE 6688

CMD ["./anticaptcha"]
