LogicGoInfotechSpaces commited on
Commit
9050174
·
verified ·
1 Parent(s): 86e7e7b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +150 -59
Dockerfile CHANGED
@@ -1,8 +1,3 @@
1
- # ============================================================================
2
- # FaceSwap API - HuggingFace Spaces Docker SDK (FIXED)
3
- # Production-ready with Gunicorn + Uvicorn workers
4
- # ============================================================================
5
-
6
  FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
7
 
8
  ENV DEBIAN_FRONTEND=noninteractive
@@ -61,8 +56,9 @@ COPY . .
61
 
62
  # ---------------------------------------------------------------------------
63
  # Install BasicSR (required for CodeFormer)
 
64
  # ---------------------------------------------------------------------------
65
- RUN cd /app && python CodeFormer/basicsr/setup.py develop 2>&1 || true
66
 
67
  # ---------------------------------------------------------------------------
68
  # Install realesrgan
@@ -91,13 +87,13 @@ EXPOSE 7860
91
  # ---------------------------------------------------------------------------
92
  # PRODUCTION CMD (GPU SAFE)
93
  # ---------------------------------------------------------------------------
94
- CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.UvicornWorker","--bind=0.0.0.0:7860","--timeout=300","--graceful-timeout=120","--keep-alive=5","--max-requests=200","--max-requests-jitter=50","--access-logfile=-","--error-logfile=-","--log-level=info"]
95
-
96
 
97
  # # ============================================================================
98
- # # FaceSwap API - HuggingFace Spaces Docker SDK
99
  # # Production-ready with Gunicorn + Uvicorn workers
100
  # # ============================================================================
 
101
  # FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
102
 
103
  # ENV DEBIAN_FRONTEND=noninteractive
@@ -127,7 +123,7 @@ CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.
127
  # && rm -rf /var/lib/apt/lists/*
128
 
129
  # # ---------------------------------------------------------------------------
130
- # # Set Python 3.11 as default + install pip
131
  # # ---------------------------------------------------------------------------
132
  # RUN ln -sf /usr/bin/python3.11 /usr/bin/python \
133
  # && ln -sf /usr/bin/python3.11 /usr/bin/python3 \
@@ -135,7 +131,7 @@ CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.
135
  # && python -m pip install --no-cache-dir --upgrade pip setuptools wheel
136
 
137
  # # ---------------------------------------------------------------------------
138
- # # Create non-root user (HuggingFace Spaces requirement)
139
  # # ---------------------------------------------------------------------------
140
  # RUN useradd -m -u 1000 user
141
  # ENV HOME=/home/user
@@ -144,80 +140,175 @@ CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.
144
  # WORKDIR /app
145
 
146
  # # ---------------------------------------------------------------------------
147
- # # Install Python dependencies (cached Docker layer)
148
  # # ---------------------------------------------------------------------------
149
  # COPY requirements.txt .
150
  # RUN pip install --no-cache-dir -r requirements.txt
151
 
152
  # # ---------------------------------------------------------------------------
153
- # # Copy full application code
154
  # # ---------------------------------------------------------------------------
155
  # COPY . .
156
 
157
  # # ---------------------------------------------------------------------------
158
- # # Install BasicSR from local source (required by CodeFormer)
159
  # # ---------------------------------------------------------------------------
160
- # RUN cd /app && python CodeFormer/basicsr/setup.py develop 2>&1 || \
161
- # echo "WARNING: BasicSR install failed (will retry at runtime)"
162
 
163
  # # ---------------------------------------------------------------------------
164
- # # Install realesrgan (depends on BasicSR)
165
  # # ---------------------------------------------------------------------------
166
- # RUN pip install --no-cache-dir realesrgan 2>&1 || \
167
- # echo "WARNING: realesrgan install failed (will retry at runtime)"
168
 
169
  # # ---------------------------------------------------------------------------
170
- # # Pre-download CodeFormer pretrained models
171
  # # ---------------------------------------------------------------------------
172
- # RUN python CodeFormer/scripts/download_pretrained_models.py facelib 2>&1 || \
173
- # echo "WARNING: facelib models download failed (will retry at runtime)"
174
- # RUN python CodeFormer/scripts/download_pretrained_models.py CodeFormer 2>&1 || \
175
- # echo "WARNING: CodeFormer models download failed (will retry at runtime)"
176
 
177
  # # ---------------------------------------------------------------------------
178
- # # Ensure directories + permissions for non-root user
179
  # # ---------------------------------------------------------------------------
180
  # RUN mkdir -p /app/models /tmp/faceswap \
181
  # && chown -R user:user /app /tmp/faceswap /home/user
182
 
183
  # # ---------------------------------------------------------------------------
184
- # # Switch to non-root user
185
  # # ---------------------------------------------------------------------------
186
  # USER user
187
 
188
  # EXPOSE 7860
189
 
190
  # # ---------------------------------------------------------------------------
191
- # # Production: Gunicorn with Uvicorn ASGI workers
192
- # #
193
- # # --workers 2 : 2 processes (each loads ML models ~1-2GB GPU)
194
- # # --worker-class : UvicornWorker for async FastAPI support
195
- # # --timeout 300 : Face swap + enhancement can take 30-120s
196
- # # --graceful-timeout : Allow 120s for in-flight requests on shutdown
197
- # # --max-requests 500 : Restart workers to prevent GPU memory leaks
198
- # # ---------------------------------------------------------------------------
199
- # # CMD ["gunicorn", "app:fastapi_app", \
200
- # # "--workers", "2", \
201
- # # "--worker-class", "uvicorn.workers.UvicornWorker", \
202
- # # "--bind", "0.0.0.0:7860", \
203
- # # "--timeout", "300", \
204
- # # "--graceful-timeout", "120", \
205
- # # "--keep-alive", "5", \
206
- # # "--max-requests", "500", \
207
- # # "--max-requests-jitter", "50", \
208
- # # "--access-logfile", "-", \
209
- # # "--error-logfile", "-", \
210
- # # "--log-level", "info"]
211
-
212
- # CMD ["gunicorn", "app:fastapi_app",
213
- # "--workers=1",
214
- # "--worker-class=uvicorn.workers.UvicornWorker",
215
- # "--bind=0.0.0.0:7860",
216
- # "--timeout=300",
217
- # "--graceful-timeout=120",
218
- # "--keep-alive=5",
219
- # "--max-requests=200",
220
- # "--max-requests-jitter=50",
221
- # "--access-logfile=-",
222
- # "--error-logfile=-",
223
- # "--log-level=info"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
 
56
 
57
  # ---------------------------------------------------------------------------
58
  # Install BasicSR (required for CodeFormer)
59
+ # Must cd into CodeFormer so setup.py finds ./basicsr/VERSION correctly
60
  # ---------------------------------------------------------------------------
61
+ RUN cd /app/CodeFormer && python basicsr/setup.py develop 2>&1 || true
62
 
63
  # ---------------------------------------------------------------------------
64
  # Install realesrgan
 
87
  # ---------------------------------------------------------------------------
88
  # PRODUCTION CMD (GPU SAFE)
89
  # ---------------------------------------------------------------------------
90
+ CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.UvicornWorker","--bind=0.0.0.0:7860","--timeout=600","--graceful-timeout=300","--keep-alive=5","--max-requests=200","--max-requests-jitter=50","--preload","--access-logfile=-","--error-logfile=-","--log-level=info"]
 
91
 
92
  # # ============================================================================
93
+ # # FaceSwap API - HuggingFace Spaces Docker SDK (FIXED)
94
  # # Production-ready with Gunicorn + Uvicorn workers
95
  # # ============================================================================
96
+
97
  # FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
98
 
99
  # ENV DEBIAN_FRONTEND=noninteractive
 
123
  # && rm -rf /var/lib/apt/lists/*
124
 
125
  # # ---------------------------------------------------------------------------
126
+ # # Set Python 3.11 as default + pip
127
  # # ---------------------------------------------------------------------------
128
  # RUN ln -sf /usr/bin/python3.11 /usr/bin/python \
129
  # && ln -sf /usr/bin/python3.11 /usr/bin/python3 \
 
131
  # && python -m pip install --no-cache-dir --upgrade pip setuptools wheel
132
 
133
  # # ---------------------------------------------------------------------------
134
+ # # Create non-root user (HF Spaces requirement)
135
  # # ---------------------------------------------------------------------------
136
  # RUN useradd -m -u 1000 user
137
  # ENV HOME=/home/user
 
140
  # WORKDIR /app
141
 
142
  # # ---------------------------------------------------------------------------
143
+ # # Install Python deps
144
  # # ---------------------------------------------------------------------------
145
  # COPY requirements.txt .
146
  # RUN pip install --no-cache-dir -r requirements.txt
147
 
148
  # # ---------------------------------------------------------------------------
149
+ # # Copy app code
150
  # # ---------------------------------------------------------------------------
151
  # COPY . .
152
 
153
  # # ---------------------------------------------------------------------------
154
+ # # Install BasicSR (required for CodeFormer)
155
  # # ---------------------------------------------------------------------------
156
+ # RUN cd /app && python CodeFormer/basicsr/setup.py develop 2>&1 || true
 
157
 
158
  # # ---------------------------------------------------------------------------
159
+ # # Install realesrgan
160
  # # ---------------------------------------------------------------------------
161
+ # RUN pip install --no-cache-dir realesrgan 2>&1 || true
 
162
 
163
  # # ---------------------------------------------------------------------------
164
+ # # Download pretrained models
165
  # # ---------------------------------------------------------------------------
166
+ # RUN python CodeFormer/scripts/download_pretrained_models.py facelib 2>&1 || true
167
+ # RUN python CodeFormer/scripts/download_pretrained_models.py CodeFormer 2>&1 || true
 
 
168
 
169
  # # ---------------------------------------------------------------------------
170
+ # # Directories + permissions
171
  # # ---------------------------------------------------------------------------
172
  # RUN mkdir -p /app/models /tmp/faceswap \
173
  # && chown -R user:user /app /tmp/faceswap /home/user
174
 
175
  # # ---------------------------------------------------------------------------
176
+ # # Switch to non-root
177
  # # ---------------------------------------------------------------------------
178
  # USER user
179
 
180
  # EXPOSE 7860
181
 
182
  # # ---------------------------------------------------------------------------
183
+ # # PRODUCTION CMD (GPU SAFE)
184
+ # # ---------------------------------------------------------------------------
185
+ # CMD ["gunicorn","app:fastapi_app","--workers=1","--worker-class=uvicorn.workers.UvicornWorker","--bind=0.0.0.0:7860","--timeout=300","--graceful-timeout=120","--keep-alive=5","--max-requests=200","--max-requests-jitter=50","--access-logfile=-","--error-logfile=-","--log-level=info"]
186
+
187
+
188
+ # # # ============================================================================
189
+ # # # FaceSwap API - HuggingFace Spaces Docker SDK
190
+ # # # Production-ready with Gunicorn + Uvicorn workers
191
+ # # # ============================================================================
192
+ # # FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
193
+
194
+ # # ENV DEBIAN_FRONTEND=noninteractive
195
+ # # ENV PYTHONUNBUFFERED=1
196
+ # # ENV PYTHONDONTWRITEBYTECODE=1
197
+
198
+ # # # ---------------------------------------------------------------------------
199
+ # # # System dependencies + Python 3.11
200
+ # # # ---------------------------------------------------------------------------
201
+ # # RUN apt-get update && apt-get install -y --no-install-recommends \
202
+ # # software-properties-common \
203
+ # # curl \
204
+ # # git \
205
+ # # build-essential \
206
+ # # libgl1-mesa-glx \
207
+ # # libglib2.0-0 \
208
+ # # libsm6 \
209
+ # # libxext6 \
210
+ # # libxrender-dev \
211
+ # # ffmpeg \
212
+ # # && add-apt-repository ppa:deadsnakes/ppa \
213
+ # # && apt-get update && apt-get install -y --no-install-recommends \
214
+ # # python3.11 \
215
+ # # python3.11-venv \
216
+ # # python3.11-dev \
217
+ # # python3.11-distutils \
218
+ # # && rm -rf /var/lib/apt/lists/*
219
+
220
+ # # # ---------------------------------------------------------------------------
221
+ # # # Set Python 3.11 as default + install pip
222
+ # # # ---------------------------------------------------------------------------
223
+ # # RUN ln -sf /usr/bin/python3.11 /usr/bin/python \
224
+ # # && ln -sf /usr/bin/python3.11 /usr/bin/python3 \
225
+ # # && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11 \
226
+ # # && python -m pip install --no-cache-dir --upgrade pip setuptools wheel
227
+
228
+ # # # ---------------------------------------------------------------------------
229
+ # # # Create non-root user (HuggingFace Spaces requirement)
230
+ # # # ---------------------------------------------------------------------------
231
+ # # RUN useradd -m -u 1000 user
232
+ # # ENV HOME=/home/user
233
+ # # ENV PATH=/home/user/.local/bin:$PATH
234
+
235
+ # # WORKDIR /app
236
+
237
+ # # # ---------------------------------------------------------------------------
238
+ # # # Install Python dependencies (cached Docker layer)
239
+ # # # ---------------------------------------------------------------------------
240
+ # # COPY requirements.txt .
241
+ # # RUN pip install --no-cache-dir -r requirements.txt
242
+
243
+ # # # ---------------------------------------------------------------------------
244
+ # # # Copy full application code
245
+ # # # ---------------------------------------------------------------------------
246
+ # # COPY . .
247
+
248
+ # # # ---------------------------------------------------------------------------
249
+ # # # Install BasicSR from local source (required by CodeFormer)
250
+ # # # ---------------------------------------------------------------------------
251
+ # # RUN cd /app && python CodeFormer/basicsr/setup.py develop 2>&1 || \
252
+ # # echo "WARNING: BasicSR install failed (will retry at runtime)"
253
+
254
+ # # # ---------------------------------------------------------------------------
255
+ # # # Install realesrgan (depends on BasicSR)
256
+ # # # ---------------------------------------------------------------------------
257
+ # # RUN pip install --no-cache-dir realesrgan 2>&1 || \
258
+ # # echo "WARNING: realesrgan install failed (will retry at runtime)"
259
+
260
+ # # # ---------------------------------------------------------------------------
261
+ # # # Pre-download CodeFormer pretrained models
262
+ # # # ---------------------------------------------------------------------------
263
+ # # RUN python CodeFormer/scripts/download_pretrained_models.py facelib 2>&1 || \
264
+ # # echo "WARNING: facelib models download failed (will retry at runtime)"
265
+ # # RUN python CodeFormer/scripts/download_pretrained_models.py CodeFormer 2>&1 || \
266
+ # # echo "WARNING: CodeFormer models download failed (will retry at runtime)"
267
+
268
+ # # # ---------------------------------------------------------------------------
269
+ # # # Ensure directories + permissions for non-root user
270
+ # # # ---------------------------------------------------------------------------
271
+ # # RUN mkdir -p /app/models /tmp/faceswap \
272
+ # # && chown -R user:user /app /tmp/faceswap /home/user
273
+
274
+ # # # ---------------------------------------------------------------------------
275
+ # # # Switch to non-root user
276
+ # # # ---------------------------------------------------------------------------
277
+ # # USER user
278
+
279
+ # # EXPOSE 7860
280
+
281
+ # # # ---------------------------------------------------------------------------
282
+ # # # Production: Gunicorn with Uvicorn ASGI workers
283
+ # # #
284
+ # # # --workers 2 : 2 processes (each loads ML models ~1-2GB GPU)
285
+ # # # --worker-class : UvicornWorker for async FastAPI support
286
+ # # # --timeout 300 : Face swap + enhancement can take 30-120s
287
+ # # # --graceful-timeout : Allow 120s for in-flight requests on shutdown
288
+ # # # --max-requests 500 : Restart workers to prevent GPU memory leaks
289
+ # # # ---------------------------------------------------------------------------
290
+ # # # CMD ["gunicorn", "app:fastapi_app", \
291
+ # # # "--workers", "2", \
292
+ # # # "--worker-class", "uvicorn.workers.UvicornWorker", \
293
+ # # # "--bind", "0.0.0.0:7860", \
294
+ # # # "--timeout", "300", \
295
+ # # # "--graceful-timeout", "120", \
296
+ # # # "--keep-alive", "5", \
297
+ # # # "--max-requests", "500", \
298
+ # # # "--max-requests-jitter", "50", \
299
+ # # # "--access-logfile", "-", \
300
+ # # # "--error-logfile", "-", \
301
+ # # # "--log-level", "info"]
302
+
303
+ # # CMD ["gunicorn", "app:fastapi_app",
304
+ # # "--workers=1",
305
+ # # "--worker-class=uvicorn.workers.UvicornWorker",
306
+ # # "--bind=0.0.0.0:7860",
307
+ # # "--timeout=300",
308
+ # # "--graceful-timeout=120",
309
+ # # "--keep-alive=5",
310
+ # # "--max-requests=200",
311
+ # # "--max-requests-jitter=50",
312
+ # # "--access-logfile=-",
313
+ # # "--error-logfile=-",
314
+ # # "--log-level=info"]