37 lines
772 B
Docker
37 lines
772 B
Docker
# syntax=docker/dockerfile:experimental
|
|
|
|
FROM golang:1.15-alpine AS builder
|
|
RUN apk add -U --no-cache \
|
|
build-base \
|
|
ca-certificates \
|
|
git \
|
|
sqlite \
|
|
taglib-dev \
|
|
alsa-lib-dev
|
|
WORKDIR /src
|
|
COPY . .
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=cache,target=/root/.cache/go-build \
|
|
./_do_build_server
|
|
|
|
FROM alpine:3.12.3
|
|
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 \
|
|
/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_PODCAST_PATH /podcasts
|
|
ENV GONIC_CACHE_PATH /cache
|
|
CMD ["gonic"]
|