Spaces:
Sleeping
Sleeping
File size: 2,621 Bytes
1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 3db3531 05fe167 3db3531 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 ba3b2d3 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 67fb03c 1a92a53 76f239e 67fb03c 1a92a53 ca3a347 80fce4d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# Use NVIDIA CUDA base image (Ubuntu 22.04 jammy)
FROM nvidia/cuda:12.3.2-devel-ubuntu22.04
# ---------------- Base env ----------------
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV CUDA_HOME=/usr/local/cuda
ENV PATH=${CUDA_HOME}/bin:/usr/local/bin:${PATH}
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
# Fix OpenMP threads to a valid integer (libgomp warning)
ENV OMP_NUM_THREADS=4
# Force headless: never try X11 DISPLAY
# ENV DISPLAY=""
# ---------------- System deps + Python 3.12 + headless GL ----------------
RUN apt-get update && apt-get install -y --no-install-recommends \
software-properties-common \
ca-certificates \
curl wget git build-essential \
libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender1 \
libgomp1 libgcc-s1 \
libosmesa6 libosmesa6-dev \
libegl1-mesa libegl1-mesa-dev \
&& add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update && apt-get install -y --no-install-recommends \
python3.12 python3.12-dev python3.12-venv \
&& rm -rf /var/lib/apt/lists/*
# Install pip for Python 3.12
RUN curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py \
&& python3.12 /tmp/get-pip.py \
&& rm /tmp/get-pip.py
# Make 'python' and 'pip' point to Python 3.12
RUN ln -sf /usr/bin/python3.12 /usr/bin/python && \
ln -sf /usr/local/bin/pip3.12 /usr/local/bin/pip
# ---------------- Writable app data & HF cache ----------------
ENV APP_DATA_DIR=/data
ENV HF_HOME=/data/hf_home
ENV HUGGINGFACE_HUB_CACHE=/data/hf_home
ENV TRANSFORMERS_CACHE=/data/hf_home
ENV MPLCONFIGDIR=/data/matplotlib
RUN mkdir -p /data/geometry /data/solution /data/weights /data/hf_home /data/matplotlib \
&& chmod -R 777 /data
# ---------------- Install frpc for Gradio share=True ----------------
RUN mkdir -p /data/hf_home/gradio/frpc && \
wget https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_linux_amd64 -O /data/hf_home/gradio/frpc/frpc_linux_amd64_v0.3 && \
chmod +x /data/hf_home/gradio/frpc/frpc_linux_amd64_v0.3
# ---------------- Application setup ----------------
WORKDIR /app
# Copy requirements first (better caching)
COPY requirements.txt .
# Install Python deps
RUN pip install --no-cache-dir --upgrade pip setuptools wheel \
&& pip install --no-cache-dir -r requirements.txt
# Copy the rest of the source code
COPY . .
# Permissions
RUN chmod +x app.py
RUN chown -R 1000:1000 /app
# Expose Trame/Gradio port
EXPOSE 7860
# Run app (Trame or Gradio, same entrypoint)
# CMD ["python", "app.py"]
# Run app on 0.0.0.0 so HF proxy can reach it
CMD python app2.py --host 0.0.0.0 --port ${PORT:-7860} --server
|