FROM golang:1.25-alpine AS builder

WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" \
    -o /out/jukebox ./cmd/jukebox

FROM alpine:3.19

RUN apk add --no-cache tzdata ca-certificates rsync

WORKDIR /app
COPY --from=builder /out/jukebox .

VOLUME ["/media", "/mnt/usb", "/config"]
EXPOSE 8080

ENTRYPOINT ["/app/jukebox"]
CMD ["--config", "/config/config.json", "--addr", ":8080", "--media", "/media", "--mount", "/mnt/usb"]
