FROM python:3.11-slim RUN apt-get update && apt-get install -y \ libsndfile1 \ wget \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Download Piper voice model at build time from HuggingFace (lessac medium - good quality, fast on CPU) RUN mkdir -p /app/models && \ wget -q "https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx?download=true" \ -O /app/models/en_US-lessac-medium.onnx && \ wget -q "https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx.json?download=true" \ -O /app/models/en_US-lessac-medium.onnx.json COPY . . EXPOSE 8003 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s \ CMD python -c "import httpx; httpx.get('http://localhost:8003/health').raise_for_status()" CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8003", "--workers", "1"]