47 lines
770 B
Docker
47 lines
770 B
Docker
# 构建阶段
|
|
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)
|
|
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 \
|
|
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"]
|