Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

emnify/jenkins-casc-docker

Repository files navigation

Jenkins Master via Config as Code

This Jenkins Master docker image (emnify/jenkins-casc) uses Jenkins Configuration as Code.

For further information, consult the documentation of the jenkinsci/jenkins container

Adjusting Configuration

Jenkins global configuration, as well as the seed job, are defined in config.yml

Adding new Jenkins Plugins

To add new plugins just add it to plugins.txt

Caution: After the last plugin an empty line is needed, otherwise the last plugin will not be installed!

Running the Container Locally

  1. Environment variable configuration

     cp .env.template jenkins.env
     # adjust jenkins.env according to your needs
    
  2. Run container

    • with docker

      docker run --name jenkins --rm -p 8080:8080 -v$(pwd)/config.yml:/var/jenkins_casc.yml  --env-file=jenkins.env emnify/jenkins-casc:latest
      
    • with docker-compose

      docker-compose up
      

Creating a new Container Version

This is hosted in ECR in EMnify shared account (648956897802.dkr.ecr.eu-west-1.amazonaws.com/jenkins-casc).

To trigger a new build, go to Jenkins pipeline and execute the pipeline accordingly with the desired branch. It will build the container using the commit hash.

Debugging Automated Plugin Updates

Plugin versions newer than existing ones are supposed to be automatically installed when included in a new container version. This happens using the jenkins.sh and its included jenkins-support script on container startup.

To read the log file of this process, execute the following code in the Jenkins Script Console:

File f = new File(System.getenv('JENKINS_HOME') + '/copy_reference_file.log')
println f.text

The startup script won't touch plugins that were manually installed, i.e., miss a .version_from_image companion file in /mnt/ESCFS/application-jenkins-master/plugins/. So don't install plugins manually.