# 多阶段构建 - 第一阶段:编译(使用已安装的镜像) FROM golang:1.26-alpine3.23 AS builder RUN apk add --no-cache git ca-certificates tzdata RUN go env -w GO111MODULE=on \ && go env -w GOPROXY=https://goproxy.cn,direct \ && go env -w GOPRIVATE=gitea.com/red-future/* # 配置Git URL重定向到私有仓库 RUN git config --global url."http://116.204.74.41:3000/red-future/".insteadOf "https://gitea.com/red-future/" \ && git config --global url."http://116.204.74.41:3000/red-future/".insteadOf "http://gitea.com/red-future/" WORKDIR /build COPY go.mod go.sum ./ RUN go mod download && go mod verify COPY . . RUN go mod tidy # 编译生成 rag 二进制 RUN CGO_ENABLED=0 GOOS=linux go build -v -o rag . # 第二阶段:运行 FROM alpine:3.23 ENV TIME_ZONE=Asia/Shanghai RUN apk add --no-cache ca-certificates tzdata && \ ln -sf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime WORKDIR /app # 复制编译好的二进制文件 COPY --from=builder /build/rag . COPY config.yml ./ # 创建日志目录 RUN mkdir -p /logs /app/resource/log/run /app/resource/log/server EXPOSE 3006 CMD ["./rag"]