FROM movesrwth/storm-basesystem:ubuntu-22.04 as build COPY ./tempest-devel /opt/tempest 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=2 # Build carl COPY ./carl /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 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 # Manage python packages WORKDIR /opt/ RUN apt-get update --fix-missing RUN apt-get install -y python3-venv # Python env handling ENV MINIGRID_VIRTUAL_ENV=/opt/venv_minigrid RUN python3 -m venv $MINIGRID_VIRTUAL_ENV # build pycarl COPY ./pycarl-2.0.4 /opt/pycarl WORKDIR /opt/pycarl RUN $MINIGRID_VIRTUAL_ENV/bin/python setup.py build_ext -j $no_threads RUN $MINIGRID_VIRTUAL_ENV/bin/pip install . # build tempestpy COPY ./tempest-py /opt/tempestpy WORKDIR /opt/tempestpy RUN $MINIGRID_VIRTUAL_ENV/bin/pip install scipy==1.13.1 RUN $MINIGRID_VIRTUAL_ENV/bin/python 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 Minigrid2PRISM RUN mkdir -p /opt/Minigrid2PRISM/build WORKDIR /opt/Minigrid2PRISM/build RUN cmake .. RUN make -j $no_threads # install minigrid COPY ./Minigrid /opt/Minigrid WORKDIR /opt/Minigrid RUN $MINIGRID_VIRTUAL_ENV/bin/pip install . RUN $MINIGRID_VIRTUAL_ENV/bin/pip install dm-tree RUN $MINIGRID_VIRTUAL_ENV/bin/pip install opencv-python RUN $MINIGRID_VIRTUAL_ENV/bin/pip install scikit-image RUN $MINIGRID_VIRTUAL_ENV/bin/pip install torch RUN $MINIGRID_VIRTUAL_ENV/bin/pip install tensorboard RUN $MINIGRID_VIRTUAL_ENV/bin/pip install tensorboardX RUN $MINIGRID_VIRTUAL_ENV/bin/pip install tensorflow RUN $MINIGRID_VIRTUAL_ENV/bin/pip install jupyterlab RUN $MINIGRID_VIRTUAL_ENV/bin/pip install astar RUN $MINIGRID_VIRTUAL_ENV/bin/pip install ipywidgets RUN $MINIGRID_VIRTUAL_ENV/bin/pip install matplotlib RUN $MINIGRID_VIRTUAL_ENV/bin/pip install sb3-contrib RUN $MINIGRID_VIRTUAL_ENV/bin/pip install opencv-python RUN $MINIGRID_VIRTUAL_ENV/bin/pip install moviepy RUN $MINIGRID_VIRTUAL_ENV/bin/pip install numpy==1.24.4 RUN $MINIGRID_VIRTUAL_ENV/bin/pip install gymnasium==0.29.0 RUN $MINIGRID_VIRTUAL_ENV/bin/pip install pydot==3.0.4 RUN $MINIGRID_VIRTUAL_ENV/bin/pip install networkx RUN $MINIGRID_VIRTUAL_ENV/bin/pip install loguru RUN $MINIGRID_VIRTUAL_ENV/bin/pip install pandas RUN $MINIGRID_VIRTUAL_ENV/bin/pip install colour RUN $MINIGRID_VIRTUAL_ENV/bin/pip install graphviz ENV M2P_BINARY=/opt/Minigrid2PRISM/build/main WORKDIR /opt ENTRYPOINT ["/bin/bash"]