Spaces:
Running
Running
Update dockerfile
Browse files- Dockerfile +15 -4
Dockerfile
CHANGED
|
@@ -1,9 +1,11 @@
|
|
| 1 |
-
FROM nvidia/cuda:12.
|
| 2 |
|
| 3 |
# Set environment variables
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 5 |
ENV PYTHONUNBUFFERED=1
|
| 6 |
ENV PYTHONDONTWRITEBYTECODE=1
|
|
|
|
|
|
|
| 7 |
|
| 8 |
# Install system dependencies
|
| 9 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
@@ -24,15 +26,16 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
| 24 |
# Set working directory
|
| 25 |
WORKDIR /app
|
| 26 |
|
| 27 |
-
# Copy requirements.txt
|
| 28 |
COPY requirements.txt /app/
|
|
|
|
| 29 |
|
| 30 |
# Install Python dependencies
|
| 31 |
RUN pip3 install --no-cache-dir --upgrade pip setuptools wheel
|
| 32 |
RUN pip3 install --no-cache-dir -r requirements.txt
|
| 33 |
|
| 34 |
-
# Install OpenCV with CUDA support
|
| 35 |
-
RUN pip3 install --no-cache-dir opencv-python-headless opencv-contrib-python-headless
|
| 36 |
|
| 37 |
# Copy application code
|
| 38 |
COPY . /app/
|
|
@@ -41,10 +44,18 @@ COPY . /app/
|
|
| 41 |
RUN chmod +x /app/run_morphing.py
|
| 42 |
RUN chmod +x /app/FILM.py
|
| 43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
# Set environment variables for CUDA
|
| 45 |
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
|
| 46 |
ENV PATH=/usr/local/cuda/bin:${PATH}
|
| 47 |
|
|
|
|
|
|
|
|
|
|
| 48 |
# Expose port for Streamlit
|
| 49 |
EXPOSE 8501
|
| 50 |
|
|
|
|
| 1 |
+
FROM nvidia/cuda:12.2.0-cudnn8-devel-ubuntu22.04
|
| 2 |
|
| 3 |
# Set environment variables
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 5 |
ENV PYTHONUNBUFFERED=1
|
| 6 |
ENV PYTHONDONTWRITEBYTECODE=1
|
| 7 |
+
ENV TF_FORCE_GPU_ALLOW_GROWTH=true
|
| 8 |
+
ENV XLA_FLAGS="--xla_gpu_enable_fast_min_max"
|
| 9 |
|
| 10 |
# Install system dependencies
|
| 11 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
|
| 26 |
# Set working directory
|
| 27 |
WORKDIR /app
|
| 28 |
|
| 29 |
+
# Copy requirements.txt but modify TensorFlow version
|
| 30 |
COPY requirements.txt /app/
|
| 31 |
+
RUN sed -i 's/tensorflow==2.18.0/tensorflow==2.15.0/' /app/requirements.txt
|
| 32 |
|
| 33 |
# Install Python dependencies
|
| 34 |
RUN pip3 install --no-cache-dir --upgrade pip setuptools wheel
|
| 35 |
RUN pip3 install --no-cache-dir -r requirements.txt
|
| 36 |
|
| 37 |
+
# Install compatible OpenCV with CUDA support
|
| 38 |
+
RUN pip3 install --no-cache-dir opencv-python-headless==4.5.5.64 opencv-contrib-python-headless==4.5.5.64
|
| 39 |
|
| 40 |
# Copy application code
|
| 41 |
COPY . /app/
|
|
|
|
| 44 |
RUN chmod +x /app/run_morphing.py
|
| 45 |
RUN chmod +x /app/FILM.py
|
| 46 |
|
| 47 |
+
# Add FILM.py fallback to CPU if CUDA fails
|
| 48 |
+
RUN sed -i '/def __call__/a\ try:' /app/FILM.py && \
|
| 49 |
+
sed -i '/result = self._model/i\ # Try with GPU' /app/FILM.py && \
|
| 50 |
+
sed -i '/result = self._model/a\ except Exception as e:\n print("GPU inference failed, falling back to CPU")\n # Force CPU execution\n with tf.device("/cpu:0"):\n result = self._model(inputs, training=False)' /app/FILM.py
|
| 51 |
+
|
| 52 |
# Set environment variables for CUDA
|
| 53 |
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
|
| 54 |
ENV PATH=/usr/local/cuda/bin:${PATH}
|
| 55 |
|
| 56 |
+
# Force TensorFlow to use compatible cuDNN version
|
| 57 |
+
ENV TF_CUDNN_VERSION=8
|
| 58 |
+
|
| 59 |
# Expose port for Streamlit
|
| 60 |
EXPOSE 8501
|
| 61 |
|