128 lines
4.1 KiB
Docker
128 lines
4.1 KiB
Docker
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04
|
|
|
|
SHELL ["/bin/sh", "-c"]
|
|
|
|
USER root
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN /usr/bin/ls
|
|
RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list
|
|
|
|
## Install some deps
|
|
#RUN ls /etc/apt/
|
|
RUN apt-get update -y
|
|
RUN apt-get install -y software-properties-common
|
|
RUN add-apt-repository ppa:deadsnakes/ppa
|
|
RUN apt-get update -y && apt-get upgrade -y
|
|
RUN apt-get install -y python3 python3-dev python3-venv python3-pip
|
|
#RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 100
|
|
|
|
RUN apt-get install -y dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev
|
|
|
|
#RUN python3 --version && python3 -m ensurepip
|
|
RUN python3 -m pip install --upgrade pip
|
|
|
|
RUN python3 -m pip install pandas numpy matplotlib MarkupSafe wandb uproot setuptools awkward-pandas plotly
|
|
RUN python3 -m pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
|
|
RUN python3 -m pip install torch_geometric
|
|
RUN python3 -m pip install torch-cluster -f https://data.pyg.org/whl/torch-2.1.0+cu118.html
|
|
|
|
# # # # GEANT
|
|
RUN apt-get -y install libxmu-dev \
|
|
libgl1-mesa-dev \
|
|
libxerces-c-dev \
|
|
libexpat1 \
|
|
libx11-dev \
|
|
libglu1-mesa-dev \
|
|
freeglut3-dev \
|
|
mesa-common-dev \
|
|
imagemagick \
|
|
gv wget autotools-dev libicu-dev libbz2-dev
|
|
|
|
|
|
|
|
## DAWN FOR VIS
|
|
|
|
RUN mkdir dawn-source \
|
|
&& wget -q -O - http://geant4.kek.jp/~tanaka/src/dawn_3_91a.tgz | tar xzf - -C "dawn-source" \
|
|
&& export DAWN_PS_PREVIEWER=NONE && cd dawn-source/dawn_3_91a \
|
|
&& make clean && make guiclean && make && make install \
|
|
&& cd - && rm -rf "dawn-source"
|
|
|
|
## main package
|
|
|
|
RUN cd && wget -q https://gitlab.cern.ch/geant4/geant4/-/archive/v11.1.2/geant4-v11.1.2.tar.gz && \
|
|
tar -xzf geant4-v11.1.2.tar.gz -C /tmp && \
|
|
mkdir /tmp/geant4-v11.1.2-build && \
|
|
cd /tmp/geant4-v11.1.2-build && \
|
|
cmake -DCMAKE_INSTALL_PREFIX=/opt/geant4-v11.1.2 -DCMAKE_RULE_MESSAGES=OFF -DGEANT4_INSTALL_DATA=ON \
|
|
-DGEANT4_USE_GDML=ON -DGEANT4_USE_OPENGL_X11=ON \
|
|
-DGEANT4_BUILD_MULTITHREADED=ON \
|
|
-DGEANT4_BUILD_TLS_MODEL=global-dynamic \
|
|
-DGEANT4_USE_RAYTRACER_X11=ON /tmp/geant4-v11.1.2 >/dev/null && \
|
|
make -j4 >/dev/null && \
|
|
make install >/dev/null
|
|
|
|
RUN rm -rf /tmp/geant4-v11.1.2 && \
|
|
rm -rf /tmp/geant4-v11.1.2-build
|
|
|
|
|
|
RUN python3 -m pip install geant4-pybind
|
|
|
|
ENV LD_LIBRARY_PATH="/opt/geant4-v11.1.2/lib:${LD_LIBRARY_PATH}"
|
|
|
|
RUN apt-get install -y git
|
|
|
|
RUN python3 -m pip install ipython
|
|
RUN apt-get install -y tk # for dawn
|
|
|
|
# add jupyter packages for UC2 on top so they don't need to be installed every time
|
|
RUN python3 -m pip install jupyterlab jupyterhub==4.1.5 batchspawner
|
|
RUN ln -s /usr/bin/python3 /usr/bin/python
|
|
|
|
|
|
RUN python3 -m pip install torch-scatter -f https://data.pyg.org/whl/torch-2.1.0+cu118.html
|
|
|
|
#finally the package; use the commit hash to check out the correct version and only get them here, such that the rest can be cached
|
|
ARG BUILD_DATE
|
|
LABEL org.label-schema.build-date=$BUILD_DATE
|
|
ARG COMMIT
|
|
ARG USER
|
|
|
|
# copy minicalosim and checkout the correct commit
|
|
ADD minicalosim /root/minicalosim
|
|
|
|
RUN cd /root/minicalosim && git checkout $COMMIT && \
|
|
mkdir -p build && cd build && rm -rf * && cmake ../ && make -j4 &&\
|
|
cp minicalo* ../bind/G4Calo.py /usr/local/lib/python3.8/dist-packages/
|
|
|
|
|
|
|
|
RUN cp /root/minicalosim/docker/start-notebook.py /usr/local/bin/
|
|
RUN cp /root/minicalosim/docker/start-notebook.sh /usr/local/bin/
|
|
RUN cp /root/minicalosim/docker/start-singleuser.py /usr/local/bin/
|
|
RUN cp /root/minicalosim/docker/start-singleuser.sh /usr/local/bin/
|
|
RUN cp /root/minicalosim/docker/fix-permissions /usr/local/bin/
|
|
RUN cp /root/minicalosim/docker/check_cuda_torch.py /usr/local/bin/
|
|
|
|
ARG NB_USER="jovyan"
|
|
ARG NB_UID="1000"
|
|
ARG NB_GID="100"
|
|
|
|
USER root
|
|
|
|
#RUN groupadd -g ${NB_GID} ${NB_USER} && \
|
|
RUN useradd -m -s /bin/bash -N -u ${NB_UID} -g ${NB_GID} ${NB_USER}
|
|
|
|
RUN mkdir /etc/jupyter
|
|
RUN fix-permissions /etc/jupyter/
|
|
|
|
|
|
# clean up
|
|
RUN rm -rf /root/minicalosim
|
|
|
|
USER ${NB_UID}
|
|
CMD ["start-notebook.sh"]
|
|
|