TeamCity Farm

Project to create VM with docker based TeamCity server and agents

View project on GitHub

TeamCity from JetBrains is my favorite build server. It “knows” what developers need, it simply works out-of-the-box instead of you spending time making it to work. There is an option to get it installed quickly with trial installation topology, when both server and single agent run on the same box. However it is preferable to isolate them from each other.

TeamCity Farm is a Maven project, which results in ZIP-archive with Vagrant project. The later

  • creates VM with Centos 7.0
  • installs Docker
  • pull necessary images and starts Docker containers with
    • mySQL database
    • TeamCity 9 build server
    • 2 TeamCity agents

The created Centos VM and installed Docker repeat your network proxy settings. Therefore you can use the project behind the company firewall

Final result: Ready for use TeamCity build server becomes available on your machine at http://localhost:8112/

How to use it?

Get Vagrant project

You can either download the released project using a button on the right or get sources and run Maven. The sources can be downloaded using a button on the right or, to get latest sources from GitHub, clone the repository

git clone
cd teamcity-farm

Then change to the directory with unpacked sources and

mvn clean package

The line above will prepare ZIP file with Vagrant project in target folder. The line below will even unpack the ZIP in target/its/team-city-farm-0.0.2-SNAPSHOT folder

mvn clean pre-integration-test -Prun-its

Create and run VM

Unpack the archive with Vagrant project and change to that directory Run the command below to create VM and prepare the build server

bin/vagrant/ vagrant.lck

Finish configuration of the build server

When VM is fully provisioned

  • open the build server at http://localhost:8112/
  • accept JetBrains TeamCity license
  • enter the desired administrator name and password
  • authorize both agents

Happy Building ;-)

What to expect shortly?

  • Scripts for running Docker containers directly on your machine, so don't have use Vagrant and Virtual Box. Basically there will be three different starting points:
    • your platform does not support Docker => start with Vagrant, which will bring you to the next starting point;
    • your box is vanilla installation => start with installation of Docker;
    • your box has Docker => just pull images and start containers
  • Utilization of fig to simplify Docker commands
  • Whatever is seen the project issues

Pre-required software

  • Recent JDK
  • Maven 3.0.4 or higher, unless you download released Vagrant project
  • Vagrant for managing virtual machine with
  • Virtual Box (or another virtualization provider)

Who do I talk to?