diff --git a/.gitignore b/.gitignore index 41cc016c4..60188f4ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .vagrant -build icinga-version.h.fallback *.komodoproject diff --git a/dev/.gitignore b/dev/.gitignore new file mode 100644 index 000000000..53771227b --- /dev/null +++ b/dev/.gitignore @@ -0,0 +1,2 @@ +.build +config diff --git a/dev/README b/dev/README new file mode 100644 index 000000000..3a3509ac4 --- /dev/null +++ b/dev/README @@ -0,0 +1,4 @@ +Icinga 2 Development Environment +================================ + +The `build' script in this directory builds Icinga 2 in a Docker VM. diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile new file mode 100644 index 000000000..ba2ce29a5 --- /dev/null +++ b/dev/docker/Dockerfile @@ -0,0 +1,6 @@ +FROM debian:jessie +RUN apt-get update +RUN apt-get install -y clang cmake make ccache flex bison libboost-all-dev libssl-dev git-core cgdb +RUN mkdir /root/build +ADD build /root/build +ENV HOME /root diff --git a/dev/docker/build b/dev/docker/build new file mode 100755 index 000000000..26f1f384b --- /dev/null +++ b/dev/docker/build @@ -0,0 +1,11 @@ +#!/bin/sh +cd $(dirname -- $0)/icinga2-build || exit 1 + +CCACHE_SLOPPINESS="include_file_mtime" +export CCACHE_SLOPPINESS + +if [ ! -e CMakeCache.txt ]; then + CC="ccache clang" CXX="ccache clang++" cmake ../icinga2 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/icinga2 -DCMAKE_INSTALL_SYSCONFDIR=/root/icinga2-config +fi + +make -j 4 && make install && cgdb -ex r --args /opt/icinga2/sbin/icinga2 -c /root/icinga2-config/icinga2/icinga2.conf -DUseVfork=0 diff --git a/dev/run b/dev/run new file mode 100755 index 000000000..d9139a3df --- /dev/null +++ b/dev/run @@ -0,0 +1,7 @@ +#!/bin/sh +cd `dirname -- $0` +DIR=`pwd` + +cd docker +docker.io build -t icinga2 --rm . +docker.io run -v $DIR/..:/root/icinga2 -v $DIR/.build:/root/icinga2-build -v $HOME/.ccache:/root/.ccache -v $DIR/config:/root/icinga2-config -t -i icinga2 /root/build