In this article, we’ll learn how to install Concourse CI on Ubuntu 20.04 Using Docker.
Concourse is an open-source continuous thing-doer. Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project. Concourse is built on the simple mechanics of resources, tasks, and jobs, Concourse presents a general approach to automation that makes it great for CI/CD.
Always keep the server updated.
# apt update -y && apt upgrade -y
First, we’ll install Docker and Docker Compose, in order to create a containers for Concourse and the database (PostgreSQL).
# sudo apt install -y docker.io docker-compose
Before we install Concourse, we need to download docker-compose.yml file from official link. It is the set of instructions for containers to create and start and their configuration.
# curl -LO https://concourse-ci.org/docker-compose.yml
# vim docker-compose.yml
Here, we need to do two modifications primarily. Make sure to change
http://localhost:8080 change to https://ci.example.com
CONCOURSE_ADD_LOCAL_USER: test:test change to CONCOURSE_ADD_LOCAL_USER: myuser:mypass
You can modify other options as per your requirements.
Now, start the containers and remove docker-compose.yml file.
# sudo docker-compose up -d
# rm -f docker-compose.yml
Download the Fly CLI binary and make it executable.
# sudo curl -o /usr/local/bin/fly “http://localhost:8080/api/v1/cli?arch=amd64&platform=linux”
# sudo chmod 755 /usr/local/bin/fly
Test to make sure that the Fly CLI was installed and can connect to the ATC server.
# fly -t tutorial login -c http://localhost:8080 -u test -p test
You can access Concourse in the web browser using your server IP and port 8080.
To access Concourse over the website, we need to install and configure Nginx. Use following command to install Nginx and Certbot.
# sudo apt install -y nginx certbot
After the installation gets completed, deploy a SSL certificate using following command:
# sudo certbot certonly –webroot -w /var/www/html -d ci.example.com
Note: Replace ci.example.com with your domain name.
For auto renewal of the SSL certificate, we need to add cron job. Use following commands:
# crontab -e
Add following line
30 5 * * * /usr/bin/certbot renew
Save and exit
Now, let’s create a configuration file for Concourse in Nginx. Use following command to create a .conf file
# sudo vim /etc/nginx/sites-available/concourse.conf
Add following lines:
server {
listen 80;
listen [::]:80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name ci.example.coom;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
}
}
Note: Replace ci.example.com with your domain name.
Create a symbolic link using following command:
# ln -s /etc/nginx/sites-available/concourse.conf /etc/nginx/sites-enabled/
Once done, test the Nginx configuration files and restart Nginx service.
# nginx -t
# systemctl restart nginx
The installation has been completed successfully. Navigate to browser and access with Concourse with your domain name.
In this article, we’ve seen how to install Concourse CI on Ubuntu 20.04 Using Docker.
2024 was the GenAI year. With new and more performant LLMs and a higher number…
Canonical’s Kubernetes LTS (Long Term Support) will support FedRAMP compliance and receive at least 12…
Welcome to the Ubuntu Weekly Newsletter, Issue 878 for the week of February 2 –…
At Canonical, we firmly believe that delivering an outstanding, customer-centric support experience is impossible without…
I want to share how to install osTicket v1.14 for Ubuntu 20.04 server. osTicket written…
Now I want to share how to install WordPress on ubuntu 20.04 server. WordPress is…