FROM ubuntu:22.04 AS build # Install build dependencies RUN apt-get update && apt-get install -y \ git \ cmake \ make \ g++ \ python3 \ python3-pip \ ffmpeg \ libavcodec-dev \ libavformat-dev \ libavutil-dev \ libswresample-dev \ && rm -rf /var/lib/apt/lists/* # Clone whisper.cpp RUN git clone https://github.com/ggerganov/whisper.cpp.git /whisper.cpp WORKDIR /whisper.cpp # Build whisper.cpp RUN make # Download a model (base.en in this example) RUN ./models/download-ggml-model.sh base.en FROM ubuntu:22.04 AS runtime # Install runtime dependencies RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ ffmpeg \ libavcodec-dev \ libavformat-dev \ libavutil-dev \ libswresample-dev \ && rm -rf /var/lib/apt/lists/* # Copy built whisper.cpp and model COPY --from=build /whisper.cpp /whisper.cpp WORKDIR /whisper.cpp # Install Python dependencies RUN pip3 install flask flask-cors # Copy API server script COPY app.py . # Expose port EXPOSE 5000 # Run the server CMD ["python3", "app.py"]