Skip to main content

Introduction

Welcome to the Jenkins section of our infrastructure documentation.

Jenkins is a powerful open-source automation server used to build, test, and deploy code. It enables Continuous Integration (CI) and Continuous Delivery (CD) workflows — helping teams ship faster with higher confidence.

Official Jenkins Docs: https://www.jenkins.io/doc/


Jenkins in Our Infrastructure

In our setup, Jenkins is containerized using Docker.

We run:

  • A Jenkins master container (the core web UI and executor)
  • One Jenkins agent containers (build executors isolated from the master)

This separation allows builds to be:

  • Environment-isolated
  • Resource-optimized
  • Easy to restart, scale, or move

We manage Jenkins using docker-compose, and the workspace is persisted using volumes to avoid losing build history or plugins on restart.


Covered Topics

This section is broken down into two core areas:

  1. Running Jenkins as a Docker service

    • How Jenkins is set up using Docker and docker-compose
    • How agents are attached and isolated
    • Volume, port, and network structure
  2. Using Jenkins UI to build and deploy projects

    • How to trigger builds from the Jenkins dashboard
    • Pipeline setup and configuration (Freestyle + Declarative)
    • How builds deploy to staging/production environments
  3. Troubleshooting & Common Issues

    • Jenkins agent not restarting after reboot
    • Permission issues between host and Jenkins agent container
    • SSH key issues if the jenkins agent got rebuilt instead of restarted

What's Next?

Start with: