From 1f8a1a9e1aedc87545d66e7b42cd46bb21ebc23d Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 11 Apr 2014 11:01:38 +0200 Subject: [PATCH] Add scripts to build a dev environment with Docker. Fixes #5996 --- .gitignore | 1 - dev/.gitignore | 2 ++ dev/README | 4 ++++ dev/docker/Dockerfile | 6 ++++++ dev/docker/build | 11 +++++++++++ dev/run | 7 +++++++ 6 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 dev/.gitignore create mode 100644 dev/README create mode 100644 dev/docker/Dockerfile create mode 100755 dev/docker/build create mode 100755 dev/run 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 -- 2.40.0