This is the in-depth tutorial for the discussion started here about creating a build farm using Jenkins with Docker containers as the build slaves. When we’re done, you should have a fully functional Jenkins environment that provisions build slaves dynamically running on your local environment and ready for you to productionize.
In this first tutorial in the Docker series, you’ll learn:
-
What we’re trying to accomplish at Riot
-
Basic setup for Docker
-
Basic Docker Pull Commands
-
How to run Docker Containers as Daemons
-
Basic Jenkins configuration options
In this tutorial, you’ll learn:
In this tutorial, you’ll learn:
In this tutorial, you’ll learn:
It’s been over two years since I first wrote an article discussing how we combined Docker containers and Jenkins to create ephemeral build environments for a lot of our backend software at Riot Games. Today the series is seven articles strong and you’ve rewarded us with feedback, conversation, technical insights, tips, and stories about how you too use containers to do all kinds of interesting things. In the world of technology, two years is a long time. The series, while still useful, is out of date. Many of the latest Docker doodads and gizmos are absent.
In this tutorial, you’ll learn:
-
Various approaches to running builds with Jenkins inside of Containers
-
Which decisions we made as a team and why
-
Lessons we learned while operating our platform
-
Context for the in depth tutorial about how to create your own ephemeral build environments using Jenkins
Over the past several months I’ve published six articles that discuss using Docker and Jenkins to containerize a build farm. Recently, I went on the road to tell the story at DockerCon 2016 and gathered a tremendous amount of amazing feedback. In fact, the best part of this whole experience has been the conversations we’re having with folks encountering similar challenges. In this short post, I’d like to accomplish two things: share the video of my DockerCon talk, and respond to requests we’ve received to consolidate my articles into a single place.
Hi, I'm Guy "RiotSomeOtherGuy" Kisel, a software engineer at Riot. You might remember me from Running an Automated Test Pipeline for the League Client Update. I work on the Riot Developer Experience team - our responsibilities include providing Jenkins servers and related infrastructure for engineers to use for building, testing, and shipping their software to the millions of players that play League of Legends.
Containers have taken over the world, and I, for one, welcome our new containerized overlords.