# 构建阶段 - 使用 Debian 基础镜像 FROM golang:1.22-bookworm AS builder # 安装 OpenCV、ONNX Runtime 和编译工具 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ g++ \ libopencv-dev \ pkg-config \ wget \ && rm -rf /var/lib/apt/lists/* # 安装 ONNX Runtime RUN wget -q https://github.com/microsoft/onnxruntime/releases/download/v1.16.3/onnxruntime-linux-x64-1.16.3.tgz \ && tar -xzf onnxruntime-linux-x64-1.16.3.tgz \ && mv onnxruntime-linux-x64-1.16.3 /usr/local/onnxruntime \ && rm onnxruntime-linux-x64-1.16.3.tgz ENV ONNXRUNTIME_DIR=/usr/local/onnxruntime ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig ENV CGO_ENABLED=1 WORKDIR /app # 复制源代码 COPY . . # 下载依赖 RUN go mod download # 构建 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/* # 复制 ONNX Runtime COPY --from=builder /usr/local/onnxruntime/lib/libonnxruntime.so* /usr/lib/ 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 ENV LD_LIBRARY_PATH=/usr/lib EXPOSE 6688 CMD ["./anticaptcha"]