FROM golang:1.23 as build
ADD --link . /build
WORKDIR /build
RUN \
    --mount=type=secret,id=github_token \
    --mount=type=cache,target=/root/.cache/go-build \
    git config --global url."https://$(cat /run/secrets/github_token)@github.com/".insteadOf "https://github.com/" \
    && make build

FROM gcr.io/pingcap-public/pingcap/alpine-glibc:alpine-3.14.6 as runtime
RUN apk update && apk add --no-cache ca-certificates
ENV GIN_MODE=release

COPY --link --from=build /build/bin/dataapi_gateway_server /usr/local/bin/dataapi_gateway_server
COPY --link --from=build /build/bin/dataapi_executor_server /usr/local/bin/dataapi_executor_server
COPY --link --from=build /build/bin/dataapi_control_server /usr/local/bin/dataapi_control_server
