# 构建阶段 - 使用 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"]