| FROM python:3.11-slim | |
| WORKDIR /app | |
| # System libs required by opencv-python-headless (video decoding + glib). | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| libglib2.0-0 libsm6 libxext6 libxrender1 ffmpeg \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Best-effort: real post-quantum signatures (CRYSTALS-Dilithium). | |
| # If no wheel is available for this platform, the backend automatically | |
| # falls back to Ed25519 — so this MUST NOT break the build. | |
| RUN pip install --no-cache-dir pqcrypto==0.3.4 || echo "pqcrypto unavailable; using Ed25519 fallback" | |
| # Best-effort: nwo-agi distributed GPU bridge (heavy: libp2p/torch). | |
| # If it fails to install here, the compute endpoints report "not configured" | |
| # and METASTATE runs jobs locally — so this MUST NOT break the build. | |
| # Enable at runtime with NWOAGI_ENABLE=1. | |
| RUN pip install --no-cache-dir nwo-agi || echo "nwo-agi unavailable; distributed compute reports not_configured" | |
| COPY . . | |
| EXPOSE 7860 | |
| CMD ["python", "app.py"] | |