Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add eigen dependency to dockerfiles
[simgrid.git] / docs / source / tuto_network_calibration / Dockerfile
1 FROM debian:11.1-slim
2
3 RUN printf '%s\n' \
4     "deb    [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20211101T024700Z/ bullseye main contrib non-free" \
5     "deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20211101T024700Z/ bullseye main contrib non-free" \
6     "deb     [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20211101T024700Z/ bullseye-updates main contrib non-free" \
7     "deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20211101T024700Z/ bullseye-updates main contrib non-free" > /etc/apt/sources.list \
8 && \
9     apt-get -o Acquire::Check-Valid-Until=false update \
10 && \
11     apt-get install -y --no-install-recommends \
12 # R
13     r-base-core \
14     r-cran-ggplot2 \
15     r-cran-dplyr \
16     r-cran-irkernel \
17     r-cran-quantreg \
18 # simgrid dependencies
19     g++ \
20     gcc \
21     git \
22     valgrind \
23     gfortran \
24     libboost-dev \
25     libboost-all-dev \
26     libeigen3-dev \
27     cmake \
28     dpkg-dev \
29 # misc tools
30     curl \
31 # python
32     python3-dev \
33     python3-pip \
34     python3-setuptools \
35     python3-pandas \
36     python3-matplotlib \
37 # jupyterlab dependencies
38     libffi-dev \
39     pandoc \
40 && \
41     apt-get clean \
42     && rm -rf /var/lib/apt/lists/*
43
44 # pycewise
45 RUN pip install --no-cache-dir --no-dependencies \
46     pycewise==0.1.4 \
47     plotnine==0.8.0 \
48     patsy==0.5.2 \
49     mizani==0.7.3 \
50     palettable==3.3.0 \
51     scipy==1.7.2 \
52     statsmodels==0.13.0 \
53     descartes==1.1.0
54
55 # R package not available at debian's cran
56 RUN R -e "install.packages('remotes', dependencies=TRUE, repos='http://cran.rstudio.com/')" && \
57     R -e "require(remotes); install_version('Ckmeans.1d.dp','4.3.3', dependencies=TRUE, repos='http://cran.rstudio.com/')"
58
59 # python jupyterlab packages
60 RUN pip install --no-cache-dir --upgrade pip && \
61     pip install --no-cache-dir \
62     jupyterlab==3.2.3 \
63     papermill==2.3.3 \
64     ipywidgets==7.6.5
65
66 # simgrid
67 RUN mkdir -p /source && cd /source && git clone --depth=1 https://framagit.org/simgrid/simgrid.git simgrid.git && \
68     cd simgrid.git && \
69     cmake -DCMAKE_INSTALL_PREFIX=/usr/ -Denable_documentation=OFF -Denable_smpi=ON -Denable_compile_optimizations=ON . && \
70     make -j4 install
71
72 # platform-calibration
73 RUN cd /source && git clone --depth=1 https://framagit.org/simgrid/platform-calibration.git && \
74     cd platform-calibration && \
75     git checkout 899f044658246fb86f24e4efc96489df546ad3d3 && \
76     cd src/calibration && \
77     sed -i -e 's/#define NB_RUNS .*/#define NB_RUNS 1/g' calibrate.c && \
78     make CC=smpicc
79
80 # get old calibration data for dahu cluster
81 RUN curl -s -L -o /source/simgrid.git/docs/source/tuto_network_calibration/grenoble_2018-08-29_1808878.zip \
82     https://github.com/Ezibenroc/calibration_analysis/raw/4837a5d841380ab3dfdbfbc919eab485c08890e9/dahu/mpi/grenoble_2018-08-29_1808878.zip
83
84 # tuto_network_calibration compilation
85 RUN cd /source/simgrid.git/docs/source/tuto_network_calibration && \
86     cmake . && \
87     make
88
89 # prepare files for execution
90 RUN cd /source/simgrid.git/docs/source/tuto_network_calibration && \
91     cp grenoble_2018-08-29_1808878.zip /tmp/ && \
92     cd /tmp/ && unzip grenoble_2018-08-29_1808878.zip && \
93     sed -i 1d exp.csv
94
95 WORKDIR /source/simgrid.git/docs/source/tuto_network_calibration/
96 ENTRYPOINT ["jupyter", "lab", "--ip=0.0.0.0", "--allow-root"]