Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a dockerfile for a wanna be MC tutorial
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 13 May 2019 08:24:37 +0000 (10:24 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 14 May 2019 10:16:27 +0000 (12:16 +0200)
tools/docker/Dockerfile.tuto-mc [new file with mode: 0644]
tools/docker/Makefile

diff --git a/tools/docker/Dockerfile.tuto-mc b/tools/docker/Dockerfile.tuto-mc
new file mode 100644 (file)
index 0000000..c53640c
--- /dev/null
@@ -0,0 +1,21 @@
+# Base image 
+FROM debian:testing
+
+# - Install SimGrid's dependencies 
+# - Compile and install SimGrid itself. Clean the tree.
+# - Remove everything that was installed, and re-install what's needed by the SimGrid libraries before the Gran Final Cleanup
+# - Keep g++ gcc gfortran as any MC user will use (some of) them
+RUN apt update && apt -y upgrade && \
+    apt install -y g++ gcc git valgrind gfortran libboost-dev libboost-all-dev cmake dpkg-dev libunwind-dev libdw-dev libelf-dev libevent-dev && \
+    mkdir /source/ && cd /source && git clone --depth=1 https://framagit.org/simgrid/simgrid.git simgrid.git && \
+    cd simgrid.git && \
+    cmake -DCMAKE_INSTALL_PREFIX=/usr/ -Denable_model-checking=ON -Denable_documentation=OFF -Denable_java=OFF -Denable_smpi=ON -Denable_compile_optimizations=ON . && \
+    make -j4 install
+    
+# The build and dependencies are not cleaned in this image since it's it's highly experimental so far    
+#    git reset --hard master && git clean -dfx && \
+#    mkdir debian/ && touch debian/control && dpkg-shlibdeps --ignore-missing-info lib/*.so -llib/ -O/tmp/deps && \
+#    apt remove -y  git valgrind libboost-dev libboost-all-dev cmake dpkg-dev libunwind-dev libdw-dev libelf-dev libevent-dev && \
+#    apt install `sed -e 's/shlibs:Depends=//' -e 's/([^)]*)//g' -e 's/,//g' /tmp/deps` && rm /tmp/deps && \
+#    apt autoremove -y && apt autoclean && apt clean
+
index 06cc7a7..595fe2f 100644 (file)
@@ -5,6 +5,7 @@ default:
        @echo "   make unstable   -> build the git version of SimGrid (with SMPI, w/o MC)"
        @echo "   make tuto-s4u   -> build all what you need to take the S4U tutorial"
        @echo "   make tuto-smpi  -> build all what you need to take the SMPI tutorial"
+       @echo "   make tuto-mc    -> build the git version of SimGrid (with SMPI and MC)"
        @echo "   make all        -> build all but stable (ie, build-deps unstable tuto-s4u tuto-smpi)"
        @echo "   make push       -> push all images to the cloud"
        @echo "All our images are based on debian:testing"
@@ -37,6 +38,13 @@ build-deps:
                 $(DOCKER_EXTRA) \
                  . | tee > build-deps.log
 
+tuto-mc:
+       docker build -f Dockerfile.tuto-mc \
+                -t simgrid/tuto-mc:latest \
+                 -t simgrid/tuto-mc:$$(date --iso-8601) \
+                $(DOCKER_EXTRA) \
+                 . | tee > tuto-mc.log
+
 build-deps-stable:
        docker build -f Dockerfile.build-deps-stable \
                 -t simgrid/build-deps-stable:latest \
@@ -64,3 +72,4 @@ push:
        docker push simgrid/unstable
        docker push simgrid/tuto-s4u
        docker push simgrid/tuto-smpi
+       docker push simgrid/tuto-mc