diff --git a/Dockerfile b/Dockerfile index 138bc6f..7b7481a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,21 @@ -FROM golang:1.14-alpine AS base +FROM golang:1.14-alpine AS builder RUN apk add -U --no-cache \ - build-base \ - ca-certificates \ - git \ - sqlite \ - taglib-dev + build-base \ + ca-certificates \ + git \ + sqlite \ + taglib-dev WORKDIR /src COPY go.mod . COPY go.sum . -ENV GO111MODULE=on RUN go mod download - -FROM base AS builder -WORKDIR /src COPY . . RUN ./_do_build_server && ./_do_build_scanner -FROM alpine +FROM alpine:3.9 RUN apk add -U --no-cache \ - ffmpeg \ - ca-certificates + ffmpeg \ + ca-certificates COPY --from=builder \ /usr/lib/libgcc_s.so.1 \ /usr/lib/libstdc++.so.6 \ diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..fdfceb2 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,35 @@ +# syntax=docker/dockerfile:experimental + +FROM golang:1.14-alpine AS builder +RUN apk add -U --no-cache \ + build-base \ + ca-certificates \ + git \ + sqlite \ + taglib-dev +WORKDIR /src +COPY . . +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + ./_do_build_server && ./_do_build_scanner + +FROM alpine:3.9 +RUN apk add -U --no-cache \ + ffmpeg \ + ca-certificates +COPY --from=builder \ + /usr/lib/libgcc_s.so.1 \ + /usr/lib/libstdc++.so.6 \ + /usr/lib/libtag.so.1 \ + /usr/lib/ +COPY --from=builder \ + /src/gonic \ + /src/gonicscan \ + /bin/ +VOLUME ["/data", "/music", "/cache"] +EXPOSE 80 +ENV GONIC_DB_PATH /data/gonic.db +ENV GONIC_LISTEN_ADDR :80 +ENV GONIC_MUSIC_PATH /music +ENV GONIC_CACHE_PATH /cache +CMD ["gonic"]