This article is an update of the previous post that built a Docker container for Kolab 3.1: Building a Docker container for Kolab on Jiffybox (March 2014)
Preparation
I am using a Jiffybox provided by DomainFactory for building a Docker container for Kolab 3.3 running on CentOS 6.
I have installed Ubuntu 12.04 LTS on a Jiffybox.
I am therefore following Docker Installation instructions for Ubuntu for the installation instructions:
Install a kernel that is required by Docker:
sudo apt-get update sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring |
After that, in the admin website of JiffyBox, select the custom kernel Bootmanager 64 Bit (pvgrub64); see also the german JiffyBox FAQ. Then restart your JiffyBox.
After the restart, uname -a
should show something like:
Linux j89610.servers.jiffybox.net 3.8.0-37-generic #53~precise1-Ubuntu SMP Wed Feb 19 21:37:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux |
Now install docker:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" sudo apt-get update sudo apt-get install lxc-docker |
Create a Docker image
I realised that if I would install Kolab in one go, the image would become too big to upload to https://index.docker.io.
Therefore I have created a Dockerfile which has several steps for downloading and installing various packages. For a detailed description of a Dockerfile, see the Dockerfile Reference
My Dockerfile is available on Github: https://github.com/TBits/KolabScripts/blob/Kolab3.3/kolab/Dockerfile. You should store it with filename Dockerfile in your current directory.
This command will build a container with the instructions from the Dockerfile in the current directory. When the instructions have been successful, an image with the name tpokorra/kolab33_centos6 will be created, and the container will be deleted:
sudo docker build -t tpokorra/kolab33_centos6 . |
You can see all your local images with this command:
sudo docker images |
To finish the container, we need to run setup-kolab, this time we define a hostname as a parameter:
MYAPP=$(sudo docker run --name centos6_kolab33 --privileged=true -h kolab33.test.example.org -d -t -i tpokorra/kolab33_centos6 /bin/bash) docker attach $MYAPP # run inside the container: echo `hostname -f` > /proc/sys/kernel/hostname echo 2 | setup-kolab --default --timezone=Europe/Brussels --directory-manager-pwd=test ./initHttpTunnel.sh ./initSSL.sh test.example.org /root/stop.sh exit |
Typing exit inside the container will stop the container.
Now you commit this last manual change:
docker commit $MYAPP tpokorra/kolab33_centos6 # delete the container docker rm $MYAPP |
You can push this image to https://index.docker.io:
#create a new account, or login with existing account: sudo docker login sudo docker push tpokorra/kolab33_centos6 |
You can now see the image available here: https://index.docker.io/u/tpokorra/kolab33_centos6/
See this post Installing Demo Version of Kolab 3.3 with Docker about how to install this image on the same or a different machine, for demo and validation purposes.
Current status: There are still some things not working fine, and I have not tested everything.
But this should be a good starting point for other people as well, to help with a good demo installation of Kolab on Docker.