Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to perform containerised builds when using bamboo-agent Docker image

sclarke81 June 5, 2020

If I'm running Bamboo server and the agent in Docker containers how should I set up containerised builds?

Should the agent be able to start containers on the host or do Docker in Docker? Any other ideas? Has anyone done this? I'd like to trash the container that actually does the build, so I'd like to avoid adding the build tools to the agent image.

1 answer

0 votes
Boris Van Hardeveld
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
June 8, 2020

From your description I would say that mounting the host Docker socket as volume in the agent container would be the best option, for reasons described here.

Your agent image would then only need to install the Docker client binary, which can be done by extending the Bamboo agent base image as described in the readme. Your agent would manage your build container as siblings.

In such a setup, you should be able to use the Bamboo Docker Runner.

If you happen to run on Kubernetes (which I cannot derive from your description), Docker-in-Docker is most often the best option (security aspects kept in mind), as described here. This configuration is implemented in the plugin Kubernetes Agents for Bamboo (note that I am affiliated with this plugin).

Happy to discuss further if you have any more questions.

sclarke81 June 8, 2020

Thanks for your reply. This sounds like exactly what I need to do. I'd wondered about mounting the host's Docker socket, but wasn't sure if that was a sensible solution.

 

I'm not on Kubernetes so using Docker on the host sounds ideal.

Boris Van Hardeveld
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
June 8, 2020

Keep in mind that going the socket route, you might run into permission issues as the Bamboo agent base image is running as user 'bamboo' (UID 1000), which will in a usual setup have no permissions over this socket. You will need to add this user to the docker group on the host system, change the socket permissions or otherwise extend the base image to run as root. 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events