# syntax=docker/dockerfile:1

FROM golang:1.19 as build
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt update && apt install yarn -y
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/" \
    && export NODE_OPTIONS=--openssl-legacy-provider && make build

FROM joelnb/dumb-init-alpine:3 as runtime
ENV GIN_MODE=release
WORKDIR /runtime
# RUN mkdir /etc/service-catalog
# RUN echo metaPath: /runtime/parser/meta >> /etc/service-catalog/config.yaml
# RUN echo jaegerAddr: localhost >> /etc/service-catalog/config.yaml
COPY --link --from=build /build/bin/service-catalog /runtime/bin/service-catalog
COPY --link --from=build /build/ui/dist/ /runtime/ui/dist/
COPY --link --from=build /build/parser/meta/ /runtime/parser/meta/
CMD ["/runtime/bin/service-catalog"]
