FROM golang:alpine as builder

WORKDIR /app

COPY . .

RUN go get github.com/beego/bee/v2 && \
    go install github.com/beego/bee/v2@master

# Generating routers/commentsRouter.go
RUN bee generate routers

# Generating the swagger 
RUN timeout 20 bee run -gendoc=true -downdoc=true -runmode=dev || : 

RUN sed -i 's/http:\/\/127.0.0.1:8080\/swagger\/swagger.json/swagger.json/g' swagger/index.html && \
    sed -i 's/https:\/\/petstore.swagger.io\/v2\/swagger.json/swagger.json/g' swagger/index.html

RUN ls -l routers

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" .

FROM scratch

WORKDIR /app

COPY ./docker_catalog.json /etc/oc/catalog.json
COPY conf/app.conf  /app/conf/
COPY --from=builder /app/oc-catalog /usr/bin/
COPY --from=builder /app/swagger /app/swagger

ENTRYPOINT ["oc-catalog"]