# builder 阶段始终运行在构建机原生平台(amd64),用 Go 交叉编译目标平台二进制 FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS builder ARG TARGETOS ARG TARGETARCH WORKDIR /app COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY . . RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o kiro-go . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /app COPY --from=builder /app/kiro-go . COPY --from=builder /app/web ./web EXPOSE 8080 VOLUME /app/data CMD ["./kiro-go"]