FROM --platform=$BUILDPLATFORM golang:1.24.3-alpine AS builder WORKDIR /src ENV CGO_ENABLED=0 ENV GOPROXY=https://goproxy.cn,direct COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY . . # 下载 ip2region 地理数据库 (编译时 embed 需要) RUN wget -q -O store/ipdb/ip2region.xdb \ https://raw.githubusercontent.com/lionsoul2014/ip2region/master/data/ip2region.xdb \ || curl -sL -o store/ipdb/ip2region.xdb \ https://raw.githubusercontent.com/lionsoul2014/ip2region/master/data/ip2region.xdb \ || touch store/ipdb/ip2region.xdb ARG TARGETOS TARGETARCH RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/go/pkg/mod \ GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags "-s -w -extldflags '-static'" -o /build/panda-wiki-consumer cmd/consumer/main.go cmd/consumer/wire_gen.go FROM alpine:3.21 AS consumer RUN apk update \ && apk upgrade \ && apk add --no-cache ca-certificates tzdata \ && update-ca-certificates 2>/dev/null || true \ && rm -rf /var/cache/apk/* WORKDIR /app COPY --from=builder /build/panda-wiki-consumer /app/panda-wiki-consumer COPY --from=builder /src/store/pg/migration /app/migration CMD ["./panda-wiki-consumer"]