Testing multi-container applications with Docker Compose and Semaphore

Docker Compose is right at home in the continuous integration environment, given its ability to easily bootstrap your containers and their interconnectedness for testing and development purposes. This page will guide you through setting up and testing a simple, multi-container project on Semaphore.

After signing up for a Semaphore account, you’ll be ready to add your first project. To follow along, you can fork the GitHub repository used in this guide. As the repository is open-source, clicking on “Build Public Project” will pull a list of public projects from your connected repository host account, in this case from GitHub.

Selecting the repository

Choosing the repository will fetch its branches and take you to the branch selection page. This is where we choose the branch for our initial build. Other, pre-existing branches, can be added later on, and new branches will be added automatically by Semaphore.

Selecting a branch for the initial build

A brief analysis will gather some information about your repository and show you the platform selection screen. If the repository has a Dockerfile or docker-compose.yml, the Docker-enabled platform will be pre-selected.

Choosing a platform

Next, Semaphore will suggest some build commands. If needed, you can tailor them to your needs with the commands editor, or later on in Project Settings.

Setting up build commands

Clicking “Build” will kick off your first build. Now you can sit back, and let Semaphore do all the work. After a short while, you will be greeted with a successful build.

First successful build with Docker Compose and Semaphore

Testing images is great, but at some point you will also want to push them to your container registry. To learn how to do that on Semaphore, check out our guides about using and setting up container registries.

Happy building!