You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

98 lines
3.1 KiB

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=<value>
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"]