$ docker-compose up
and go to http://localhost:8080 in browser
this starts up a jenkins server and a couple of jenkins agents
then go to http://localhost:8082 and setup jfrog artifactory. Change admin password to "Admin1234"
The service has the following components:
- jenkins server
- jenkins agent1
- jenkins agent2
- jfrog artifactory oss
- mail server
The jenkins server is the one orchestrating the jobs running in the CI.
You can access the service at http://localhost:8080
By default 2 users are configured:
- admin: administrator user (password is admin)
- user: common user (password is user)
This is the artifactory server
You can access this service at http://localhost:8082
Remember to setup admin password to Admin1234, for now this is not done automatically
a test mail server with a web UI so you can inspect mail send through the server
You can access the ui at http://localhost:8025
Jenkins plugins are listed in plugins.txt. You need to rebuild the docker image when this file is changed
$ docker-compose build jenkins
Jenkins Configuration as code is a jenkins plugin that allows to declare jenkins configuration in yaml files
The directory config/jcasc contains several file configuring different aspects of jenkins:
- main.yaml: main jenkins configuration
- nodes.yaml: define jenkins nodes
- jobs.yaml: jobs definition
- security.yaml: security settings
- misc.yaml: other plugin configuration
These files are added to jenkins server container at /etc/jenkins/config/jcasc/
as set by CASC_JENKINS_CONFIG
environment variable
Jobs are loaded through a seed job defined in jobs.yaml that dynamically generates all other jobs. These jobs are defined in jobs folder in a series of groovy scripts
When starting jenkins the seed job is automatically launched as defined in seed.groovy
A pipeline library is available globally. This pipeline library is defined in this repository