# Build stage
FROM golang:1.27-alpine AS builder

WORKDIR /app

# Install build dependencies
RUN apk add --no-cache git make

# Copy go mod files
COPY go.mod go.sum ./
RUN go mod download

# Copy source
COPY . .

# Tidy and build binary
RUN go mod tidy && CGO_ENABLED=0 GOOS=linux go build -o /ym-dl ./cmd/ym-dl

# Runtime stage
FROM gcr.io/distroless/static-debian12:nonroot

WORKDIR /app

# Copy binary
COPY --from=builder /ym-dl /app/ym-dl

# Copy config example
COPY config.yaml.example /app/config.yaml.example

# Run as non-root user (distroless uses nonroot:nonroot by default)
USER nonroot:nonroot

ENTRYPOINT ["/app/ym-dl"]
CMD ["--config", "/config/config.yaml"]