Architecture
Friendly Jenkins follows a three-tier design: a Jenkins controller, one or more Docker-capable agents, and reusable shared library + templates that define every environment.
Components
-
Jenkins Master: orchestrates jobs, stores configuration, exposes UI.
-
Jenkins Agents: run Docker Compose commands; multiple labels for workload separation.
-
Shared Library (
qa-shared): Groovy utilities for templating, backups, health checks, locks, cleanup. -
Application Templates: YAML +
.env+ optional configs per service, rendered per environment. -
Storage:
-
Master:
/var/jenkins_home/qa-data/envs/<env>/for rendered artifacts and metadata. -
Agents:
/opt/qa-envs/<env>/for runnable compose stacks and backups.
-