diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..ed61cdc7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# syntax=docker/dockerfile:1.6 + +FROM golang:1.23-bookworm AS builder +WORKDIR /src +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +ENV CGO_ENABLED=0 +RUN go build -trimpath -ldflags="-s -w" -o /out/minstrel ./cmd/minstrel + +FROM debian:bookworm-slim +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates ffmpeg \ + && rm -rf /var/lib/apt/lists/* + +RUN groupadd --system --gid 1000 minstrel \ + && useradd --system --uid 1000 --gid minstrel --shell /usr/sbin/nologin minstrel + +COPY --from=builder /out/minstrel /usr/local/bin/minstrel +COPY config.example.yaml /etc/smartmusic/config.yaml + +USER minstrel +EXPOSE 4533 +ENTRYPOINT ["/usr/local/bin/minstrel"] +CMD ["--config", "/etc/smartmusic/config.yaml"]