## Stage 1: Build go-transcode
FROM golang:1.23-alpine AS build-transcode
RUN apk add --no-cache git
WORKDIR /src
COPY go-transcode/ ./
RUN if [ -f go.mod ]; then go build -o /go-transcode .; fi

## Stage 2: Build sheepflix-api
FROM golang:1.23-alpine AS build-api
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY cmd/ cmd/
COPY internal/ internal/
RUN CGO_ENABLED=0 go build -o /sheepflix-api ./cmd/sheepflix

## Stage 3: Runtime
FROM alpine:3.20

RUN apk add --no-cache \
    ffmpeg \
    libva \
    libva-intel-driver \
    intel-media-driver \
    mesa-va-gallium \
    bash

COPY --from=build-api /sheepflix-api /usr/local/bin/sheepflix-api
COPY --from=build-transcode /go-transcode /usr/local/bin/go-transcode

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 8090 8091

ENTRYPOINT ["/entrypoint.sh"]
