Spaces:
Sleeping
Sleeping
MusaedMusaedSadeqMusaedAl-Fareh225739
commited on
Commit
Β·
2e3f13f
1
Parent(s):
650866a
updated dockerfile
Browse files- Dockerfile +6 -9
Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# Hugging Face Spaces - MrrrMe with Coqui XTTS v2
|
| 2 |
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
|
| 3 |
|
| 4 |
# Install system dependencies
|
|
@@ -48,6 +48,7 @@ COPY requirements_docker.txt ./
|
|
| 48 |
RUN python3.11 -m pip install --no-cache-dir -r requirements_docker.txt
|
| 49 |
|
| 50 |
# PRE-DOWNLOAD XTTS V2 MODEL (Memory Safe)
|
|
|
|
| 51 |
RUN python3.11 -c "from TTS.utils.manage import ModelManager; print('β³ Downloading XTTS v2 model...'); ModelManager().download_model('tts_models/multilingual/multi-dataset/xtts_v2'); print('β
Download complete.')"
|
| 52 |
|
| 53 |
# Install avatar dependencies
|
|
@@ -60,15 +61,12 @@ COPY --link --chown=1000:1000 model/ ./model/
|
|
| 60 |
COPY --link --chown=1000:1000 avatar/ ./avatar/
|
| 61 |
COPY --link --chown=1000:1000 weights/ ./weights/
|
| 62 |
|
| 63 |
-
# β NEW: Copy the entry point file
|
| 64 |
-
COPY --link --chown=1000:1000 app.py ./
|
| 65 |
-
|
| 66 |
# Create directories
|
| 67 |
RUN mkdir -p /app/weights /app/avatar/static
|
| 68 |
|
| 69 |
# Fix openface bug
|
| 70 |
-
|
| 71 |
-
|
| 72 |
# Build frontend
|
| 73 |
COPY avatar-frontend/package*.json ./frontend/
|
| 74 |
WORKDIR /app/frontend
|
|
@@ -94,9 +92,8 @@ RUN mkdir -p /etc/nginx/certs && \
|
|
| 94 |
-days 365 \
|
| 95 |
-subj "/CN=mrrrme.hf.space"
|
| 96 |
|
| 97 |
-
# Create startup script
|
| 98 |
-
#
|
| 99 |
-
RUN printf '#!/bin/bash\nset -e\nexport HOME=/home/user\nmkdir -p /tmp\n\n# Agree to TOS\nexport COQUI_TOS_AGREED=1\n\nif [ -d "/data" ] && [ -w "/data" ]; then\n echo "Persistent storage: /data"\n chmod 777 /data 2>/dev/null || true\nelse\n echo "Ephemeral storage: /tmp"\nfi\n\npkill -f "app.py" 2>/dev/null || true\npkill -f "speak_server.py" 2>/dev/null || true\npkill -f "node server.js" 2>/dev/null || true\npkill -f "nginx" 2>/dev/null || true\n\nsleep 2\necho "Starting MrrrMe (XTTS v2)..."\ncd /app && python3.11 app.py &\ncd /app/avatar && python3.11 speak_server.py &\ncd /app/frontend/.next/standalone && HOSTNAME=0.0.0.0 PORT=3001 node server.js &\nsleep 10\nnginx -g "daemon off;" &\necho "Ready!"\nwait\n' > /app/start.sh && chmod +x /app/start.sh
|
| 100 |
|
| 101 |
# Set ownership
|
| 102 |
RUN chown -R 1000:1000 /app
|
|
|
|
| 1 |
+
# Hugging Face Spaces - MrrrMe with Coqui XTTS v2 + MODULAR BACKEND
|
| 2 |
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
|
| 3 |
|
| 4 |
# Install system dependencies
|
|
|
|
| 48 |
RUN python3.11 -m pip install --no-cache-dir -r requirements_docker.txt
|
| 49 |
|
| 50 |
# PRE-DOWNLOAD XTTS V2 MODEL (Memory Safe)
|
| 51 |
+
# Uses ModelManager to download without loading to RAM (Fixes Exit 137)
|
| 52 |
RUN python3.11 -c "from TTS.utils.manage import ModelManager; print('β³ Downloading XTTS v2 model...'); ModelManager().download_model('tts_models/multilingual/multi-dataset/xtts_v2'); print('β
Download complete.')"
|
| 53 |
|
| 54 |
# Install avatar dependencies
|
|
|
|
| 61 |
COPY --link --chown=1000:1000 avatar/ ./avatar/
|
| 62 |
COPY --link --chown=1000:1000 weights/ ./weights/
|
| 63 |
|
|
|
|
|
|
|
|
|
|
| 64 |
# Create directories
|
| 65 |
RUN mkdir -p /app/weights /app/avatar/static
|
| 66 |
|
| 67 |
# Fix openface bug
|
| 68 |
+
RUN python3.11 -c "import os; fp='/usr/local/lib/python3.11/dist-packages/openface/multitask_model.py'; c=open(fp).read() if os.path.exists(fp) else ''; exec(\"if os.path.exists(fp) and 'import cv2' not in c:\\n open(fp,'w').write('import cv2\\\\n'+c)\\n print('Patched')\")"
|
| 69 |
+
|
| 70 |
# Build frontend
|
| 71 |
COPY avatar-frontend/package*.json ./frontend/
|
| 72 |
WORKDIR /app/frontend
|
|
|
|
| 92 |
-days 365 \
|
| 93 |
-subj "/CN=mrrrme.hf.space"
|
| 94 |
|
| 95 |
+
# β
NEW: Create startup script with MODULAR BACKEND
|
| 96 |
+
RUN printf '#!/bin/bash\nset -e\nexport HOME=/home/user\nmkdir -p /tmp\n\n# Agree to TOS\nexport COQUI_TOS_AGREED=1\n\nif [ -d "/data" ] && [ -w "/data" ]; then\n echo "Persistent storage: /data"\n chmod 777 /data 2>/dev/null || true\nelse\n echo "Ephemeral storage: /tmp"\nfi\n\npkill -f "backend_new.py" 2>/dev/null || true\npkill -f "speak_server.py" 2>/dev/null || true\npkill -f "node server.js" 2>/dev/null || true\npkill -f "nginx" 2>/dev/null || true\n\nsleep 2\necho "Starting MrrrMe (XTTS v2 + Modular Backend v2.0)..."\n\n# Start NEW modular backend\ncd /app && python3.11 mrrrme/backend_new.py &\n\n# Start avatar TTS\ncd /app/avatar && python3.11 speak_server.py &\n\n# Start Next.js frontend\ncd /app/frontend/.next/standalone && HOSTNAME=0.0.0.0 PORT=3001 node server.js &\n\nsleep 10\nnginx -g "daemon off;" &\necho "Ready!"\nwait\n' > /app/start.sh && chmod +x /app/start.sh
|
|
|
|
| 97 |
|
| 98 |
# Set ownership
|
| 99 |
RUN chown -R 1000:1000 /app
|