# 构建阶段 FROM golang:1.22-alpine AS builder # 安装 OpenCV 和编译工具 RUN apk add --no-cache \ gcc \ g++ \ musl-dev \ opencv \ opencv-dev \ pkgconfig WORKDIR /app # 复制源代码 COPY . . # 设置 CGO 编译环境 ENV CGO_ENABLED=1 ENV PKG_CONFIG_PATH=/usr/lib/pkgconfig # 构建 RUN go mod download || true RUN go build -ldflags="-s -w" -o anticaptcha ./cmd/server # 运行阶段 FROM alpine:3.20 # 安装运行时依赖 RUN apk add --no-cache \ ca-certificates \ tzdata \ opencv \ 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"]