Files
MusicServer/Dockerfile
Sebastian f9d6c24a97 Changed routing framework from mux to Gin.
Swagger doc is now included in the application.
A fronted can now be hosted from the application.
2022-01-29 17:52:33 +01:00

51 lines
991 B
Docker

FROM node:lts-alpine as build_vue
# make the 'app' folder the current working directory
WORKDIR /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY cmd/frontend/package*.json ./
# install project dependencies
RUN npm install
COPY cmd/frontend .
RUN npm run build
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
COPY --from=build_vue /app/dist ./frontend/dist
RUN go build -o /music-server/MusicServer
# Stage 2, distribution container
FROM golang:1.16-alpine
RUN apk add --no-cache bash
EXPOSE 8080
VOLUME /sorted
VOLUME /doc
ENV DB_HOST ""
ENV DB_PORT ""
ENV DB_USERNAME ""
ENV DB_PASSWORD ""
ENV DB_NAME ""
COPY --from=build_go /music-server/MusicServer .
COPY docs/swagger.yaml .
COPY ./songs/ ./songs/
COPY ./init.sh .
RUN chmod 777 ./init.sh
CMD ./init.sh