PhysicsNeMo-MHD / Dockerfile.dedalus
carmelog's picture
init: magnetohydrodynamics with physicsnemo
830a558
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"]