FROM golang:1.25-alpine AS builder

WORKDIR /src

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

COPY cmd ./cmd
COPY internal ./internal

RUN CGO_ENABLED=0 GOOS=linux go build -o /out/ai-service ./cmd/server \
    && CGO_ENABLED=0 GOOS=linux go build -o /out/ai-service-worker ./cmd/worker

FROM alpine:3.22

RUN apk add --no-cache ca-certificates ffmpeg tini

WORKDIR /app
COPY --from=builder /out/ai-service /usr/local/bin/ai-service
COPY --from=builder /out/ai-service-worker /usr/local/bin/ai-service-worker

EXPOSE 8080

ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/usr/local/bin/ai-service"]
