Getting started with Docker and Bamboo
Docker is an operating system container technology that allows running applications in isolated environments called containers. Docker containers are equipped with all dependencies required by an app to run. The container abstraction provides many benefits such as: the creation of reproducible environments, redistribution of full application stacks for running on different machines, or limiting the resource consumption of an application running in a container.
The Docker container technology and Bamboo can interact in the following ways:
Run Bamboo in Docker
Bamboo Docker images allows you to run the Bamboo Server or the Bamboo remote agent inside a Docker container. This makes it isolated from other applications that may be running on the same host system. In this type of interaction Bamboo is itself unaware of the existence of Docker container it is running in.
To get Bamboo up and running quickly, we have prepared Bamboo Server and Bamboo Agent Docker images. Both are minimalistic and highly customisable images that allow you to get Bamboo ready for action in no time. These images provide a fully controllable and reproducible environment which makes them perfect for testing purposes. Both images are designed to be easily extensible, allowing you to add capabilities needed to run your builds quickly. You can see an example how to extend an image to suit your needs on our Docker Hub space.
Also if you’re considering implementing Bamboo in your environment, you can use our Docker images for Bamboo evaluation - just run the Docker and see if Bamboo is the tool for you.
Go to the Docker Hub for the images and instructions how to set them up:
Run Bamboo jobs in Docker
Docker Runner is a Bamboo feature that allows the user of Bamboo to run jobs of Bamboo plans inside Docker container environments. In this type of interaction, Bamboo is aware of the Docker container technology and communicates with it to create, manage, and terminate container environments in which jobs are run.
With Docker Runner, you can run builds and deployments in a Docker container to isolate the build process from the environment where the Bamboo build agent runs in. This increases the reliability of your environment by providing isolation, and more strict control over the resources the continuous integration (CI) process has access to. Also, it gives you possibility to recreate the same build environment at different moments in time. The isolation also helps with the reliability of your CI by making sure that environment it runs in can be reliably recreated each time you run your builds.
For information, see Docker Runner.
Use Docker in your Bamboo tasks
A Docker task is a specific task type in Bamboo which allows you to use your own, custom Docker image with Bamboo to run a task of a job inside the Docker container environment. In this type of interaction Bamboo is aware of the Docker container technology and, similarly to the Docker Runner feature, it interacts with it to create, manage, and terminate container environments in which one single task is run.
The main difference between the two is that one works at the level of the Bamboo task, which runs a single task inside the container, while the other works at the level of the Bamboo job, which runs all the tasks that make up the job inside the same Docker container environment.
To learn how to start using these tasks, see Configuring the Docker task in Bamboo.