# Stage 1: Build akaiutil from source FROM debian:11 AS akaiutil-builder RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* COPY third_party/akaiutil/ /src/akaiutil/ WORKDIR /src/akaiutil RUN make # Stage 2: Build fetch (Go tool) FROM golang:1.26-alpine AS fetch-builder WORKDIR /src COPY go.mod main.go serve.go /src/ COPY web/ /src/web/ RUN CGO_ENABLED=0 go build -o /fetch . # Stage 3: Runtime image FROM debian:11-slim RUN apt-get update && apt-get install -y --no-install-recommends \ bash \ ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /data/output/isos /data/output/wavs COPY --from=akaiutil-builder /src/akaiutil/akaiutil /usr/local/bin/ COPY --from=fetch-builder /fetch /usr/local/bin/fetch COPY scripts/extract_wavs.sh /usr/local/bin/ WORKDIR /data EXPOSE 8080 ENTRYPOINT ["fetch"] CMD ["serve", "-p", "8080", "--host", "0.0.0.0"]