FROM gcr.io/pingcap-public/third-party/baseimage/golang:1.24.5-alpine3.22 AS build
ARG GITHUB_TOKEN
RUN apk add make
RUN apk update && apk add --no-cache git make bash docker
RUN git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"
ADD . /root/apps
WORKDIR /root/apps
ENV GOPRIVATE=github.com/tidbcloud
ENV GOTOOLCHAIN=auto
RUN make bin/server_in_docker

FROM gcr.io/pingcap-public/third-party/baseimage/golang:1.24.5-alpine3.22 AS server

RUN apk update && apk add --no-cache ca-certificates wget tzdata \
  && wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64 \
  && chmod +x /usr/local/bin/dumb-init
ENTRYPOINT ["/usr/local/bin/dumb-init"]
COPY --from=build /root/apps/build/server/server /usr/local/bin/server
COPY --from=build /root/apps/build/server/worker /usr/local/bin/worker
COPY --from=build /root/apps/build/server/stress /usr/local/bin/stress
COPY --from=build /root/apps/build/server/promotion_worker /usr/local/bin/promotion_worker
ENV GIN_MODE=release
ENV GIT_HASH=$GIT_HASH
CMD ["/usr/local/bin/server"]
