FROM golang:1.16-alpine as build_go

COPY go.* /music-server/
COPY ./cmd/*.go /music-server/cmd/
COPY ./cmd/swagger /music-server/cmd/swagger
COPY ./pkg /music-server/pkg/

WORKDIR /music-server/
RUN go mod download

WORKDIR /music-server/cmd

RUN go build -o /music-server/MusicServer

# Stage 2, distribution container
FROM golang:1.16-alpine
EXPOSE 8080
VOLUME /sorted
VOLUME /frontend

ENV DB_HOST ""
ENV DB_PORT ""
ENV DB_USERNAME ""
ENV DB_PASSWORD ""
ENV DB_NAME ""

COPY --from=build_go /music-server/MusicServer .
COPY ./songs/ ./songs/

CMD ./MusicServer