Concourse CI is a streamlined, scalable, and open-source continuous integration (CI) system written in Go. Its simple, pipeline-based architecture makes it ideal for automating development workflows. In this tutorial, you’ll learn how to deploy Concourse CI on Ubuntu 20.04 using Docker and Docker Compose.
Step 1: Install Docker
Begin by installing Docker. Run the following commands to set up Docker on your Ubuntu system:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
Step 2: Install Docker Compose
Download and install Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Step 3: Set Up Docker Compose for Concourse
Create a new directory for your Concourse deployment and navigate into it:
mkdir concourse-docker && cd concourse-docker
Create the docker-compose.yml file:
nano docker-compose.yml
Paste the following configuration:
version: '3'
services:
concourse-db:
image: postgres
environment:
POSTGRES_DB: concourse
POSTGRES_USER: concourse
POSTGRES_PASSWORD: concourse_pass
networks: [concourse-net]
concourse:
image: concourse/concourse
command: quickstart
depends_on: [concourse-db]
ports: ["8080:8080"]
environment:
CONCOURSE_POSTGRES_HOST: concourse-db
CONCOURSE_POSTGRES_USER: concourse
CONCOURSE_POSTGRES_PASSWORD: concourse_pass
CONCOURSE_POSTGRES_DATABASE: concourse
CONCOURSE_EXTERNAL_URL: http://localhost:8080
CONCOURSE_ADD_LOCAL_USER: testuser:testpass
CONCOURSE_MAIN_TEAM_LOCAL_USER: testuser
networks: [concourse-net]
networks:
concourse-net: {}
Step 4: Start Concourse CI
Launch the Concourse containers:
docker-compose up -d