AnsysLPFMTrame-App / Dockerfile
udbhav
changed the docker for test
80fce4d
# 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