# Stage 1: Build Go binary
FROM golang:1.26-alpine AS builder

RUN apk add --no-cache git ca-certificates

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

COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o ytdlp-navidrome .

# Stage 2: Final image
FROM alpine:latest

RUN apk add --no-cache \
    ca-certificates \
    ffmpeg \
    python3 \
    py3-pip \
    libc6-compat

RUN pip3 install --break-system-packages yt-dlp

# Copy Go binary
COPY --from=builder /build/ytdlp-navidrome /usr/local/bin/ytdlp-navidrome

# Create directories
RUN mkdir -p /music/ytdlp /tmp/ytdlp-previews

ENTRYPOINT ["/usr/local/bin/ytdlp-navidrome"]
