FROM movesrwth/storm-basesystem:ubuntu-22.04 as build #COPY ./tempest-devel /opt/tempest #COPY ./tempest-py /opt/tempestpy COPY ./pycarl-2.0.4 /opt/pycarl #COPY ./carl /opt/carl # RUN rm -r /opt/tempest/.git # RUN rm -r /opt/tempestpy/.git # RUN rm -r /opt/Minigrid2PRISM/.git RUN apt-get update RUN apt-get install -y python3.10 # Specify number of threads to use for parallel compilation # This number can be set from the commandline with: # --build-arg no_threads= ARG no_threads=6 # Build carl RUN git clone -b tags/c++14-22.01 https://github.com/ths-rwth/carl.git /opt/carl RUN mkdir -p /opt/carl/build WORKDIR /opt/carl/build RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_CLN_NUMBERS=ON -DUSE_GINAC=ON RUN make lib_carl -j $no_threads # Build tempest RUN git clone -b tempestpy_adaptions https://git.pranger.xyz/sp/tempest.git /opt/tempest RUN mkdir -p /opt/tempest/build WORKDIR /opt/tempest/build RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DSTORM_DEVELOPER=OFF -DSTORM_LOG_DISABLE_DEBUG=ON -DSTORM_PORTABLE=OFF -DSTORM_USE_SPOT_SHIPPED=ON RUN make resources storm binaries -j $no_threads RUN apt-get install -y maven RUN apt-get install -y uuid-dev # COPY ./carl-parser /opt/carl-parser # # Switch to build directory # RUN mkdir -p /opt/carl-parser/build # WORKDIR /opt/carl-parser/build # Configure carl-parser RUN cmake .. -DCMAKE_BUILD_TYPE=$build_type # Build carl-parser # RUN make carl-parser -j $no_threads # Manage python packages WORKDIR /opt/ RUN apt-get install -y python3-venv # Python env handling ENV VIRTUAL_ENV=/opt/venv RUN python3 -m venv $VIRTUAL_ENV ENV PATH="$VIRTUAL_ENV/bin:$PATH" RUN apt-get install -y python3-pip # build pycarl WORKDIR /opt/pycarl RUN python setup.py build_ext -j $no_threads RUN pip install . # build tempestpy RUN git clone -b refactoring https://git.pranger.xyz/sp/tempestpy.git /opt/tempestpy WORKDIR /opt/tempestpy RUN python3 setup.py build_ext --storm-dir /opt/tempest/ -j $no_threads develop # build yaml-cpp COPY ./yaml-cpp /opt/yaml-cpp RUN mkdir -p /opt/yaml-cpp/build WORKDIR /opt/yaml-cpp/build RUN cmake .. -DCMAKE_BUILD_TYPE=Release RUN make -j $no_threads RUN make install -j $no_threads COPY ./Minigrid2PRISM /opt/Minigrid2PRISM # build minigrid to prism RUN mkdir -p /opt/Minigrid2PRISM/build WORKDIR /opt/Minigrid2PRISM/build RUN cmake .. RUN make -j $no_threads # build minigrid #COPY ./Minigrid /opt/Minigrid #RUN rm -r /opt/Minigrid/.git #WORKDIR /opt/Minigrid #RUN pip install . RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y WORKDIR /opt/tempestpy RUN pip install -U "ray[all]==2.6.3" RUN pip install dm-tree RUN pip install opencv-python RUN pip install scikit-image RUN pip install torch RUN pip install tensorboard RUN pip install tensorboardX RUN pip install gymnasium RUN pip install tensorflow RUN pip install jupyterlab RUN pip install astar RUN pip install ipywidgets RUN pip install numpy RUN pip install matplotlib RUN pip install sb3-contrib RUN pip install opencv-python RUN pip install moviepy ENV M2P_BINARY=/opt/Minigrid2PRISM/build/main # We mount the Minigrid directory here manually again, to be able to have the directory hosted in the jupyter notebook CMD ["pip", "install", "-e", "/opt/Minigrid"] ENTRYPOINT ["jupyter", "lab","--ip=0.0.0.0","--allow-root", "--notebook-dir=/opt/notebooks"]