We all use CI, right ? I’d even like to have a CI server setup at home for my own projects to at least ensure I’ve not done anything silly to tie my code to my machine or the likes, but also to ensure that I can easily recreate the build requirements of my project.
I thought it’d be cool to get TeamCity up and running on my Linux server and (as is usual for me at the moment) I wanted it running in Docker. Luckily there’s an official build on Docker Hub.
Also see TeamCity on Docker Hub – it’s official now!
So first up we need to setup some directories on the host for TeamCity to store data and logs through to (otherwise shutting down Docker will lose our projects).
First off, let’s get the Docker image for TeamCity, run
docker pull jetbrains/teamcity-server
Next create the following directories (or similar wherever you prefer)
~/teamcity/data
~/teamcity/logs
Then fun the following
docker run -it --name teamcity-server \ -v ~/teamcity/data:/data/teamcity_server/datadir \ -v ~/teamcity/logs:/opt/teamcity/logs \ -p 8111:8111 \ jetbrains/teamcity-server
In the above we’ll run an instance of TeamCity named teamcity-server mapping the host directories we create to the datadir and logs of TeamCity. We’ll also map the host port 8111 to the TeamCity port 8111 (host being the first of the two in the above command).
Now if you use your preferred browser to access
http://<ip-address>:8111
You’ll be asked a couple of questions for TeamCity to set up the datadir and DB. I just used the defaults. After reading and accepting the license agreement you’ll be asked to create a user name and password. Finally supply your name/email address etc. and save the changes.
Setting up a build agent
From the Agents page you can click the link Install Build Agents and either get the zip or msi and decompress the zip to a given folder or run the MSI. I’ve simply unzipped the build agent.
We’ll need to create a buildAgent.properties file before we can run the agent. This file should be in the conf folder of the agent.
Change the serverUrl to your TeamCity server (and anything else you might want to change).
Now run the following on the build agent machine (I’m using Windows for the agent)
agent.bat start
Finally click the TeamCity web page’s Unauthorized link in the Agents section and Authorize the agent. If you’re using the free version of TeamCity you can have three build agents.