MichonGoddijn231849 commited on
Commit
56e425c
·
1 Parent(s): dcdd6cf

update dockerfile for dev mode

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -15
Dockerfile CHANGED
@@ -3,12 +3,17 @@
3
 
4
  FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
5
 
6
- # Install system dependencies
7
  RUN apt-get update && apt-get install -y \
 
 
 
 
 
 
8
  python3.11 \
9
  python3-pip \
10
  python3.11-dev \
11
- git \
12
  libgl1-mesa-glx \
13
  libglib2.0-0 \
14
  libsm6 \
@@ -16,10 +21,11 @@ RUN apt-get update && apt-get install -y \
16
  ffmpeg \
17
  portaudio19-dev \
18
  libsndfile1 \
19
- curl \
20
  nginx \
21
- wget \
22
  gnupg \
 
 
 
23
  && rm -rf /var/lib/apt/lists/*
24
 
25
  # Install Node.js 20 (required for Next.js 16)
@@ -55,10 +61,10 @@ RUN python3.11 -m pip install --no-cache-dir \
55
  fastapi uvicorn python-multipart gtts pydub websockets
56
 
57
  # Copy application code
58
- COPY mrrrme/ ./mrrrme/
59
- COPY model/ ./model/
60
- COPY avatar/ ./avatar/
61
- COPY weights/ ./weights/
62
 
63
  # Create directories
64
  RUN mkdir -p /app/weights /app/avatar/static
@@ -71,7 +77,7 @@ COPY avatar-frontend/package*.json ./frontend/
71
  WORKDIR /app/frontend
72
  RUN npm ci
73
 
74
- COPY avatar-frontend/ ./
75
  RUN npm run build
76
 
77
  # Copy static files to standalone
@@ -91,15 +97,15 @@ RUN mkdir -p /etc/nginx/certs && \
91
  -days 365 \
92
  -subj "/CN=mrrrme.hf.space"
93
 
94
- # Set ownership for Dev Mode user
95
- RUN chown -R 1000:1000 /app && chmod -R 777 /app
96
 
97
- # Create startup script with RUNTIME permission fix
98
- RUN printf '#!/bin/bash\nset -e\n\n# DEBUG: Check current user\necho "Running as user: $(whoami) (UID: $(id -u))"\necho "App directory permissions:"\nls -la /app/mrrrme/audio/ | head -5\n\n# FIX PERMISSIONS AT RUNTIME (critical for Dev Mode)\necho "Fixing permissions for Dev Mode..."\nchown -R $(id -u):$(id -g) /app 2>/dev/null || true\nchmod -R 777 /app 2>/dev/null || true\necho "Permissions fixed!"\n\n# Configure git for Dev Mode\nexport HOME=/tmp\nmkdir -p /tmp\ngit config --global user.name "michon" 2>/dev/null || true\ngit config --global user.email "[email protected]" 2>/dev/null || true\n\n# Kill any existing processes\npkill -f "mrrrme.backend_server" 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\nsleep 2\n\necho "Starting MrrrMe..."\ncd /app && python3.11 -m mrrrme.backend_server &\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!"\n\n# Keep container alive\nwait\n' > /app/start.sh && chmod +x /app/start.sh
99
-
100
- # Final ownership fix
101
  RUN chown -R 1000:1000 /app
102
 
 
 
 
103
  # Expose Hugging Face Spaces port
104
  EXPOSE 7860
105
 
 
3
 
4
  FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
5
 
6
+ # Install system dependencies + Dev Mode requirements
7
  RUN apt-get update && apt-get install -y \
8
+ bash \
9
+ git \
10
+ git-lfs \
11
+ wget \
12
+ curl \
13
+ procps \
14
  python3.11 \
15
  python3-pip \
16
  python3.11-dev \
 
17
  libgl1-mesa-glx \
18
  libglib2.0-0 \
19
  libsm6 \
 
21
  ffmpeg \
22
  portaudio19-dev \
23
  libsndfile1 \
 
24
  nginx \
 
25
  gnupg \
26
+ htop \
27
+ vim \
28
+ nano \
29
  && rm -rf /var/lib/apt/lists/*
30
 
31
  # Install Node.js 20 (required for Next.js 16)
 
61
  fastapi uvicorn python-multipart gtts pydub websockets
62
 
63
  # Copy application code
64
+ COPY --link --chown=1000:1000 mrrrme/ ./mrrrme/
65
+ COPY --link --chown=1000:1000 model/ ./model/
66
+ COPY --link --chown=1000:1000 avatar/ ./avatar/
67
+ COPY --link --chown=1000:1000 weights/ ./weights/
68
 
69
  # Create directories
70
  RUN mkdir -p /app/weights /app/avatar/static
 
77
  WORKDIR /app/frontend
78
  RUN npm ci
79
 
80
+ COPY --link --chown=1000:1000 avatar-frontend/ ./
81
  RUN npm run build
82
 
83
  # Copy static files to standalone
 
97
  -days 365 \
98
  -subj "/CN=mrrrme.hf.space"
99
 
100
+ # Create startup script
101
+ RUN printf '#!/bin/bash\nset -e\n\n# Configure git for Dev Mode\nexport HOME=/tmp\nmkdir -p /tmp\ngit config --global user.name "michon" 2>/dev/null || true\ngit config --global user.email "[email protected]" 2>/dev/null || true\n\n# Kill any existing processes\npkill -f "mrrrme.backend_server" 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\nsleep 2\n\necho "Starting MrrrMe..."\ncd /app && python3.11 -m mrrrme.backend_server &\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!"\n\n# Keep container alive\nwait\n' > /app/start.sh && chmod +x /app/start.sh
102
 
103
+ # Set ownership of entire /app to user 1000
 
 
 
104
  RUN chown -R 1000:1000 /app
105
 
106
+ # CRITICAL: Switch to user 1000 for Dev Mode
107
+ USER 1000
108
+
109
  # Expose Hugging Face Spaces port
110
  EXPOSE 7860
111