# 构建阶段
FROM golang:1.22-alpine AS builder

# 安装 OpenCV 和编译工具
RUN apk add --no-cache \
    gcc \
    g++ \
    musl-dev \
    opencv-dev \
    pkgconfig

WORKDIR /app

# 复制源代码
COPY . .

# 构建 (启用 CGO)
RUN go mod download || true
RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -o anticaptcha ./cmd/server

# 运行阶段
FROM alpine:3.20

# 安装运行时依赖
RUN apk add --no-cache \
    ca-certificates \
    tzdata \
    opencv-libs \
    libstdc++

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"]
