31 lines
940 B
Docker
31 lines
940 B
Docker
FROM golang:1.25-bookworm AS build
|
|
WORKDIR /src
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
ARG VERSION=dev
|
|
RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=${VERSION}" -o /out/vibesonic ./cmd/vibesonic
|
|
|
|
FROM debian:bookworm-slim
|
|
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& useradd -r -u 10001 -d /data -s /usr/sbin/nologin vibesonic \
|
|
&& mkdir -p /data /music \
|
|
&& chown -R vibesonic:vibesonic /data
|
|
|
|
COPY --from=build /out/vibesonic /usr/local/bin/vibesonic
|
|
|
|
USER vibesonic
|
|
VOLUME ["/data", "/music"]
|
|
EXPOSE 8080
|
|
|
|
ENV VIBESONIC_LISTEN_ADDR=:8080 \
|
|
VIBESONIC_DATA_DIR=/data \
|
|
VIBESONIC_DB=/data/vibesonic.db \
|
|
VIBESONIC_MUSIC_DIRS=/music \
|
|
VIBESONIC_FFMPEG_PATH=/usr/bin/ffmpeg \
|
|
VIBESONIC_FFPROBE_PATH=/usr/bin/ffprobe \
|
|
VIBESONIC_SCAN_INTERVAL=1h
|
|
|
|
ENTRYPOINT ["/usr/local/bin/vibesonic"]
|