Spaces:
Build error
Build error
| # syntax=docker/dockerfile:1 | |
| ############################################################################## | |
| # MuseTalk-ready Dockerfile (cleaned, consistent, safer installs) | |
| ############################################################################## | |
| FROM python:3.9-slim | |
| # Build-time args | |
| ARG REPO="https://github.com/TMElyralab/MuseTalk.git" | |
| ARG BRANCH="main" | |
| ARG INSTALL_POSE="false" | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV MODEL_DIR=/app/models | |
| WORKDIR /app | |
| LABEL org.opencontainers.image.source=${REPO} | |
| # Install system dependencies in a single layer | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| git \ | |
| ffmpeg \ | |
| build-essential \ | |
| python3-dev \ | |
| libgl1-mesa-glx \ | |
| libglib2.0-0 \ | |
| libjpeg-dev \ | |
| libpng-dev && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Shallow clone the repository | |
| RUN set -eux; \ | |
| git clone --depth 1 --branch "${BRANCH}" "${REPO}" . && \ | |
| git submodule update --init --recursive | |
| # Overlay local build context (if any) | |
| COPY . . | |
| # Upgrade pip and install requirements | |
| RUN set -eux; \ | |
| pip install --no-cache-dir --upgrade pip setuptools wheel | |
| # Install requirements.txt if present, fail if missing (adjust if optional) | |
| RUN set -eux; \ | |
| if [ -f requirements.txt ]; then \ | |
| pip install --no-cache-dir -r requirements.txt; \ | |
| else \ | |
| echo "Warning: requirements.txt not found; ensure dependencies are installed manually"; \ | |
| fi | |
| # Install additional Python packages with pinned versions | |
| RUN set -eux; \ | |
| pip install --no-cache-dir \ | |
| livekit==1.0.7 \ | |
| livekit-api==1.0.2 \ | |
| omegaconf \ | |
| transformers==4.39.3 \ | |
| protobuf==3.20.3 --force-reinstall | |
| # Install optional pose/mm packages if enabled | |
| RUN set -eux; \ | |
| if [ "${INSTALL_POSE}" = "true" ]; then \ | |
| pip install --no-cache-dir cython; \ | |
| pip install --no-cache-dir git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI; \ | |
| pip install --no-cache-dir openmim; \ | |
| pip install --no-cache-dir mmengine==0.10.7 mmcv==2.0.0rc4; \ | |
| python -m mim install mmpose; \ | |
| python -m mim install mmdet; \ | |
| else \ | |
| echo "Skipping pose/mm installation (set --build-arg INSTALL_POSE=true to enable)"; \ | |
| fi | |
| # Ensure model directory exists | |
| RUN mkdir -p "${MODEL_DIR}" | |
| # Expose ports (confirm these match app.py requirements) | |
| EXPOSE 7860 8000 | |
| # Verify app.py exists before running | |
| CMD ["sh", "-c", "if [ -f app.py ]; then python3 app.py; else echo 'Error: app.py not found'; exit 1; fi"] |