# syntax=docker/dockerfile:1

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 joelnb/dumb-init-alpine:3 as runtime
RUN apk update && apk add --no-cache ca-certificates

COPY --link --from=build /build/bin/dataapi_server /usr/local/bin/dataapi
COPY --link --from=build /build/bin/central_server /usr/local/bin/central
COPY --link --from=build /build/bin/regioncentral_server /usr/local/bin/regioncentral
COPY --link --from=build /build/bin/dataapi_gateway_server /usr/local/bin/dataapp-gateway
COPY --link --from=build /build/bin/dataapi_executor_server /usr/local/bin/dataapp-executor
COPY --link --from=build /build/bin/central_worker /usr/local/bin/worker
COPY --link --from=build /build/bin/adminapi_server /usr/local/bin/adminapi
COPY --link --from=build /build/bin/dataservice_tools /usr/local/bin/dataservice_tools
