FROM nvidia/cuda:12.8.1-cudnn-runtime-ubuntu24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update -qq && \ apt-get autoremove -y -qq && \ apt-get install -y -qq apt-file \ vim \ wget \ git \ software-properties-common \ make \ g++ \ gcc \ gpg-agent && \ apt-get clean && rm -rf /var/cache/apt/archives /var/lib/apt/lists/* RUN useradd -m -u 1001 user && \ mkdir -p /home/user/.cache /home/user/.config /home/user/.local && \ chmod -R 777 /home/user && \ mkdir /mhd-demo && chown user:user /mhd-demo && chmod 777 /mhd-demo USER user ENV HOME=/home/user ENV PATH=/home/user/.local/bin:$PATH WORKDIR $HOME/app ENV CONDA_DIR=$HOME/conda ENV PATH=$CONDA_DIR/bin:$PATH RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ /bin/bash ~/miniconda.sh -b -p $HOME/conda && \ rm ~/miniconda.sh && \ conda config --add channels conda-forge && \ conda config --set channel_priority strict && \ conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main && \ conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r && \ conda create -n env python=3.12 -y --quiet && \ conda run -n env conda env config vars set OMP_NUM_THREADS=1 && \ conda run -n env conda env config vars set NUMEXPR_MAX_THREADS=1 && \ conda run -n env conda install -c conda-forge dedalus jupyter jupyterlab torch hydra-core imageio -y --quiet ENV PATH=$HOME/conda/envs/env/bin:$PATH # # Copy all files at once COPY --chown=user on_startup.sh README.md start_server.sh requirements.txt ./ COPY --chown=user magnetohydrodynamics.ipynb mhd /mhd-demo/ RUN chmod +x start_server.sh && \ chmod -R 777 /mhd-demo/ EXPOSE 7860 CMD ["./start_server.sh"]