udbhav commited on
Commit
1a92a53
·
1 Parent(s): 1d51d28

changed the docker.py

Browse files
Files changed (2) hide show
  1. Dockerfile +48 -16
  2. app.py +0 -5
Dockerfile CHANGED
@@ -1,41 +1,73 @@
1
- # Use NVIDIA CUDA base image (Ubuntu 22.04)
2
  FROM nvidia/cuda:12.3.2-devel-ubuntu22.04
3
 
4
- # Non-interactive apt
5
  ENV DEBIAN_FRONTEND=noninteractive
6
  ENV PYTHONUNBUFFERED=1
7
  ENV CUDA_HOME=/usr/local/cuda
8
  ENV PATH=${CUDA_HOME}/bin:/usr/local/bin:${PATH}
9
  ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
10
 
11
- # System deps (Python 3.12 + basics)
 
 
 
12
  RUN apt-get update && apt-get install -y --no-install-recommends \
13
- python3.12 python3.12-venv python3-pip python3.12-distutils \
14
- git curl ca-certificates build-essential \
 
15
  libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender1 \
 
16
  libosmesa6 libosmesa6-dev \
17
  libegl1-mesa libegl1-mesa-dev \
 
 
 
18
  && rm -rf /var/lib/apt/lists/*
19
 
20
- # Optional: make `python` and `pip` point to 3.12
21
- RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1 && \
22
- update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- # Workdir
 
 
 
 
 
 
 
 
25
  WORKDIR /app
26
 
27
- # Copy requirements first (good for build caching)
28
  COPY requirements.txt .
29
 
30
- # Install Python packages
31
- RUN pip install --upgrade pip && \
32
- pip install --no-cache-dir -r requirements.txt
33
 
34
- # Copy the rest of your app
35
  COPY . .
36
 
37
- # HF Spaces default port
 
 
 
 
38
  EXPOSE 7860
39
 
40
- # Start your Trame app (change app_trame.py to your actual file)
41
  CMD ["python", "app.py"]
 
1
+ # Use NVIDIA CUDA base image (Ubuntu 22.04 jammy)
2
  FROM nvidia/cuda:12.3.2-devel-ubuntu22.04
3
 
4
+ # ---------------- Base env ----------------
5
  ENV DEBIAN_FRONTEND=noninteractive
6
  ENV PYTHONUNBUFFERED=1
7
  ENV CUDA_HOME=/usr/local/cuda
8
  ENV PATH=${CUDA_HOME}/bin:/usr/local/bin:${PATH}
9
  ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
10
 
11
+ # Fix OpenMP threads to a valid integer (libgomp warning)
12
+ ENV OMP_NUM_THREADS=4
13
+
14
+ # ---------------- System deps + Python 3.12 + headless GL ----------------
15
  RUN apt-get update && apt-get install -y --no-install-recommends \
16
+ software-properties-common \
17
+ ca-certificates \
18
+ curl wget git build-essential \
19
  libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender1 \
20
+ libgomp1 libgcc-s1 \
21
  libosmesa6 libosmesa6-dev \
22
  libegl1-mesa libegl1-mesa-dev \
23
+ && add-apt-repository ppa:deadsnakes/ppa -y \
24
+ && apt-get update && apt-get install -y --no-install-recommends \
25
+ python3.12 python3.12-dev python3.12-venv \
26
  && rm -rf /var/lib/apt/lists/*
27
 
28
+ # Install pip for Python 3.12
29
+ RUN curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py \
30
+ && python3.12 /tmp/get-pip.py \
31
+ && rm /tmp/get-pip.py
32
+
33
+ # Make 'python' and 'pip' point to Python 3.12
34
+ RUN ln -sf /usr/bin/python3.12 /usr/bin/python && \
35
+ ln -sf /usr/local/bin/pip3.12 /usr/local/bin/pip
36
+
37
+ # ---------------- Writable app data & HF cache ----------------
38
+ ENV APP_DATA_DIR=/data
39
+ ENV HF_HOME=/data/hf_home
40
+ ENV HUGGINGFACE_HUB_CACHE=/data/hf_home
41
+ ENV TRANSFORMERS_CACHE=/data/hf_home
42
+ ENV MPLCONFIGDIR=/data/matplotlib
43
 
44
+ RUN mkdir -p /data/geometry /data/solution /data/weights /data/hf_home /data/matplotlib \
45
+ && chmod -R 777 /data
46
+
47
+ # ---------------- Install frpc for Gradio share=True ----------------
48
+ RUN mkdir -p /data/hf_home/gradio/frpc && \
49
+ wget https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_linux_amd64 -O /data/hf_home/gradio/frpc/frpc_linux_amd64_v0.3 && \
50
+ chmod +x /data/hf_home/gradio/frpc/frpc_linux_amd64_v0.3
51
+
52
+ # ---------------- Application setup ----------------
53
  WORKDIR /app
54
 
55
+ # Copy requirements first (better caching)
56
  COPY requirements.txt .
57
 
58
+ # Install Python deps
59
+ RUN pip install --no-cache-dir --upgrade pip setuptools wheel \
60
+ && pip install --no-cache-dir -r requirements.txt
61
 
62
+ # Copy the rest of the source code
63
  COPY . .
64
 
65
+ # Permissions
66
+ RUN chmod +x app.py
67
+ RUN chown -R 1000:1000 /app
68
+
69
+ # Expose Trame/Gradio port
70
  EXPOSE 7860
71
 
72
+ # Run app (Trame or Gradio, same entrypoint)
73
  CMD ["python", "app.py"]
app.py CHANGED
@@ -12,11 +12,6 @@ import numpy as np
12
  import torch
13
  import pyvista as pv
14
 
15
- import os
16
-
17
- # Force a valid value for OpenMP threads (silences libgomp warning)
18
- os.environ["OMP_NUM_THREADS"] = "4"
19
-
20
  from scipy.spatial import cKDTree
21
  from vtk.util import numpy_support as nps
22
  import matplotlib.cm as cm
 
12
  import torch
13
  import pyvista as pv
14
 
 
 
 
 
 
15
  from scipy.spatial import cKDTree
16
  from vtk.util import numpy_support as nps
17
  import matplotlib.cm as cm