diff --git a/Dockerfile b/Dockerfile index 4f493cfceca86e7fa2af35603673e262f7c3be0e..dd3d3e2f00cb3206784902cf194fc0a29cb64f18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,152 +1,13 @@ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. -FROM jupyter/minimal-notebook:150731d32f85 -USER root - -############################################################################################ -# Setup and install ParaView with python wrappings -############################################################################################ - -# Install dependencies -RUN apt-get update && apt-get install -y \ - cmake \ - # g++ \ - pkg-config \ - python-dev \ - python3-mpi4py \ - zlib1g-dev \ - && apt-get clean && rm -rf /var/lib/apt/lists/* \ - && mkdir /tmpbuild && mkdir /builds \ - # - # Download and build LLVM - # Flags see https://www.paraview.org/Wiki/ParaView/ParaView_And_Mesa_3D#Installing_LLVM - # - && cd /tmpbuild \ - && wget http://releases.llvm.org/3.9.1/llvm-3.9.1.src.tar.xz \ - && tar xJf llvm-3.9.1.src.tar.xz \ - && mkdir /builds/llvm && cd /builds/llvm \ - && sed -i 's/list(REMOVE_DUPLICATES LIB_NAMES)/if(LIB_NAMES)\n list(REMOVE_DUPLICATES LIB_NAMES)\nendif()/' \ - /tmpbuild/llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt \ - && cmake -G "Unix Makefiles" \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=ON \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_TARGETS_TO_BUILD:STRING=X86 \ - /tmpbuild/llvm-3.9.1.src \ - && make -j"$(nproc)" && make install \ - && rm -rf /tmpbuild/* \ - && cd /tmpbuild \ - # Download and extract Mesa - # Flags see https://www.paraview.org/Wiki/ParaView/ParaView_And_Mesa_3D#Installing_Mesa_llvmpipe_and_swr_drivers - && wget https://mesa.freedesktop.org/archive/mesa-18.0.5.tar.gz \ - && tar xf mesa-18.0.5.tar.gz \ - # Build Mesa with OpenSWR (only OSMesa, no GLX for rendering without graphics hardware) - && mkdir /builds/mesa && cd /builds/mesa \ - && /tmpbuild/mesa-18.0.5/configure \ - --build=x86_64-linux-gnu \ - --enable-opengl --disable-gles1 --disable-gles2 \ - --disable-va --disable-xvmc --disable-vdpau \ - --enable-shared-glapi \ - --enable-llvm --enable-llvm-shared-libs \ - --with-gallium-drivers='swrast,swr' \ - --disable-dri --with-dri-drivers= \ - --disable-egl --with-platforms= --disable-gbm \ - --disable-glx \ - --disable-osmesa --enable-gallium-osmesa \ - && make -j"$(nproc)" && make install \ - && rm -rf /tmpbuild/* \ - && rm -rf /builds/mesa/src \ - # - # Build ParaView - # - && cd /tmpbuild \ - && wget "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.8&type=source&os=Sources&downloadFile=ParaView-v5.8.1.tar.gz" -O ParaView-v5.8.1.tar.gz \ - && tar xf ParaView-v5.8.1.tar.gz \ - && mkdir /builds/paraview && cd /builds/paraview \ - && cmake \ - # Build Settings - -DCMAKE_INSTALL_PREFIX=/opt/paraview/ \ - -DCMAKE_BUILD_TYPE=Release \ - -DPARAVIEW_BUILD_SHARED_LIBS=ON \ - -DPARAVIEW_ENABLE_WEB=ON \ - -DPARAVIEW_USE_QT=OFF \ - # Development and Testing - -DPARAVIEW_INSTALL_DEVELOPMENT_FILES=OFF \ - -DBUILD_TESTING=OFF \ - -DBUILD_EXAMPLES=OFF \ - -DBUILD_DOCUMENTATION=OFF \ - # Python Settings - -DPARAVIEW_USE_PYTHON=ON \ - -DVTK_PYTHON_VERSION:STRING=3 \ - # Rendering - -DVTK_LEGACY_SILENT=ON \ - # OpenGL - -DOPENGL_INCLUDE_DIR=IGNORE \ - -DOOENGL_gl_LIBRARY=IGNORE \ - -DOPENGL_xmesa_INCLUDE_DIR=IGNORE \ - # OSMesa - -DOSMESA_LIBRARY=/usr/local/lib/libOSMesa.so \ - -DOSMESA_INCLUDE_DIR=/usr/local/include \ - -DVTK_OPENGL_HAS_OSMESA=ON \ - -DVTK_USE_X=OFF \ - -DVTK_USE_OFFSCREEN=ON \ - # Large Data - # -DVTK_USE_64BIT_IDS=ON \ - # Extra Libraries - -DPARAVIEW_USE_VTKM=OFF \ - /tmpbuild/ParaView-v5.8.1 \ - && make -j"$(nproc)" && make install \ - && rm -rf /tmpbuild/* && rm -rf /builds/paraview \ - # Config LD Library paths - && ldconfig \ - # Cleanup - && rm -rf /tmpbuild && rm -rf /builds \ - && apt-get purge -y --auto-remove --purge \ - cmake \ - pkg-config \ - python-dev \ - zlib1g-dev \ - && rm -rf /var/lib/apt/lists/* - -# Enable the OpenSWR driver -ENV GALLIUM_DRIVER=swr -# Paths -ENV PATH "${PATH}:/opt/paraview/bin" -ENV LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/opt/paraview/lib" -ENV PYTHONPATH "${PYTHONPATH}:/opt/paraview/lib/python3.8/site-packages" - -# Patch ParaView -COPY files/simple.py /opt/paraview/lib/python3.8/site-packages/paraview/simple.py -COPY files/servermanager.py /opt/paraview/lib/python3.8/site-packages/paraview/servermanager.py - -# ############################################################################################ -# # Setup Jupyter for pvlink -# ############################################################################################ - -WORKDIR /home/$NB_USER/work -USER $NB_UID -RUN pip install jupyter-server-proxy \ - service_identity pvlink\ - mpi4py numpy \ - ## JupyterLab extensions - && jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager \ - && jupyter labextension install --no-build pvlink \ - && jupyter lab build \ - ## Cleanup - && npm cache clean --force \ - && rm -rf $CONDA_DIR/share/jupyter/lab/staging \ - && rm -rf /home/$NB_USER/.cache/yarn \ - && rm -rf /home/$NB_USER/.node-gyp \ - && mkdir logs +FROM aigro/pvlink-demo:base +RUN mkdir logs ENV JUPYTER_LOG_DIR "/home/jovyan/work/logs" +# Turn off warnings in Python 3.8 +ENV PYTHONWARNINGS "ignore" COPY --chown=$NB_UID:$NB_GID notebooks/*.ipynb /home/$NB_USER/work/ COPY --chown=$NB_UID:$NB_GID files/pv_server.py /home/$NB_USER/work/ COPY --chown=$NB_UID:$NB_GID data /home/$NB_USER/work/data -COPY --chown=$NB_UID:$NB_GID CatalystEnabledSimulation /home/$NB_USER/work/CatalystEnabledSimulation - -# Turn off warnings in Python 3.8 -ENV PYTHONWARNINGS "ignore" +COPY --chown=$NB_UID:$NB_GID CatalystEnabledSimulation /home/$NB_USER/work/CatalystEnabledSimulation \ No newline at end of file