FROM python:3.11-slim RUN apt-get update && apt-get install -y libsndfile1 ffmpeg && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Patch pipecat LiveKit transport bugs: # 1. Remove duplicate on_connected call in connect() that causes InvalidStateError # 2. Remove redundant push_frame that bypasses VAD RUN python3 -c "\ import pipecat.transports.services.livekit as m; \ path = m.__file__; \ content = open(path).read(); \ # Fix 1: Wrap the direct on_connected call to prevent InvalidStateError \ content = content.replace( \ 'await self._callbacks.on_connected()', \ 'try:\n await self._callbacks.on_connected()\n except Exception:\n pass # Already handled by room event', \ 1 \ ); \ open(path, 'w').write(content); \ print(f'Patched {path}')" COPY . . HEALTHCHECK --interval=30s --timeout=10s --start-period=30s \ CMD python -c "import httpx; httpx.get('http://localhost:8080/health').raise_for_status()" CMD ["python", "main.py"]