# 构建阶段 - 使用 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 . . # 使用 pkg-config 获取 OpenCV 编译标志 RUN go mod download || true RUN PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig CGO_ENABLED=1 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"]