FROM --platform=$BUILDPLATFORM gcr.io/pingcap-public/third-party/baseimage/golang:1.23 AS builder

ARG TARGETOS TARGETARCH
RUN apt-get update && apt-get install -y g++-aarch64-linux-gnu gcc-aarch64-linux-gnu

ARG GITHUB_TOKEN=
RUN git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"

WORKDIR /build
COPY go.mod go.sum ./
RUN go mod download -x

COPY . ./

RUN if [ "$TARGETARCH" = "arm64" ]; then CC=aarch64-linux-gnu-gcc && CC_FOR_TARGET=gcc-aarch64-linux-gnu; fi && \
	CC=$CC CC_FOR_TARGET=$CC_FOR_TARGET make build

FROM --platform=$TARGETPLATFORM gcr.io/pingcap-public/third-party/debian:bookworm-slim
RUN apt-get update && apt-get install ca-certificates -y
COPY --from=builder /build/bin/serverless-metering /serverless-metering
