From 07d5199d600cbd9566ac49ee35f99bb15eff2d6e Mon Sep 17 00:00:00 2001 From: Tim Schubert Date: Mon, 1 Jun 2020 21:06:11 +0200 Subject: [PATCH] init: Dockerfile and Makefile --- .gitignore | 1 + Makefile | 23 ++++++++++++++ TODO.md | 11 +++++++ docker/Dockerfile | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 TODO.md create mode 100644 docker/Dockerfile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4cfc12a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bake/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4ef0720 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +.PHONY: configure build docker-build-image all build configure clean test + +DOCKER_RUN=docker run -it --mount type=bind,source="$(PWD)"/bake,target=/usr/bake ns-3-leo + +all: docker-build docker-run + +docker-build-image: docker/Dockerfile + cd docker && docker build -t ns-3-leo . + +bake: + git clone https://gitlab.com/nsnam/bake.git + +configure: docker-build-image bake + $(DOCKER_RUN) /bin/bash -c './bake.py configure -e ns-3-leo && ./bake.py check && ./bake.py download' + +build: docker-build-image bake + $(DOCKER_RUN) ./bake.py build -vvv + +clean: docker-build-image + $(DOCKER_RUN) ./bake.py clean + +test: docker-build-image + $(DOCKER_RUN) /bin/bash -c 'cd source/ns-3-leo/ && ./test.py' diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..7b39c4a --- /dev/null +++ b/TODO.md @@ -0,0 +1,11 @@ +2020-06-01 +---------- + +1. ✓ read ns-3 introduction +2. ✓ figure out how to package ns-3 module using bake +3. ✓ create project for module and build chain (Docker) + +2020-06-02 +---------- + +1. workpackages -> issues and milestones on GL or git-bug diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..6295e97 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,76 @@ +FROM ubuntu:19.10 +LABEL Description="Docker image for NS-3 Network Simulator" + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update + +# General dependencies +RUN apt-get install -y \ + make \ + git \ + mercurial \ + wget \ + vim \ + autoconf \ + bzr \ + cvs \ + unrar \ + build-essential \ + clang \ + valgrind \ + gsl-bin \ + libgsl-dev \ + flex \ + bison \ + libfl-dev \ + tcpdump \ + sqlite \ + sqlite3 \ + libsqlite3-dev \ + libxml2 \ + libxml2-dev \ + vtun \ + unzip \ + lxc + +# QT components +RUN apt-get install -y \ + qtbase5-dev \ + qt4-dev-tools + +# Python components +RUN apt-get install -y \ + python \ + python3 \ + python-dev \ + python3-dev \ + python-setuptools \ + python3-setuptools \ + python3-requests \ + python3-gi-cairo \ + python-gi-cairo \ + python-pygraphviz \ + python3-pygraphviz \ + python-gobject \ + python-gobject-2 \ + python3-distro \ + gir1.2-gtk-3.0 \ + cmake \ + libc6-dev \ + libc6-dev-i386 \ + g++-multilib + +# Setup bake env +ENV BAKE_HOME=/usr/bake +ENV PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin +ENV PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib + +# Create working directory where bake home will be mounted +RUN mkdir $BAKE_HOME +WORKDIR /usr/bake + +# Cleanup +RUN apt-get clean && \ + rm -rf /var/lib/apt +