Nous allons voir à travers cette article comment utiliser la 'stack' logicielle Jenkins / Git et Docker pour builder ses conteneur.
Installer docker sur le node02 : Docker.io - Déploiement sous linux
Une fois docker installé sur le node02, il faut ajouter l'utilisateur “jenkins” au groupe “docker”.
# usermod -aG docker jenkins
On redémarre docker
# systemctl restart docker
On redémarre jenkins
# systemctl restart jenkins
Attention:
Got permission denied while trying to connect to the Docker daemon socket at unix.
Nous allons installer le plugin “Docker Pipeline”.
Dans Manage Jenkins > Manage plugins > Available rechercher Docker Pipeline.
Une fois la construction (Build) de notre “dockerfiles” réalisé, nous stockerons le conteneur dans une registry. Dans l'exemple suivant, nous allons utiliser dockerhub.
Nous allons déclarer nos accès à dockerHub dans “Manage Jenkins” > “Manage Credentials” > “Add Credentials”
pipeline { environment { registry = "rbouikila/docker-test" registryCredential = 'dockerhub' dockerImage = '' } agent any stages { stage('Cloning Git') { steps { /*git branch: 'main', url: 'https://github.com/rbouikila/img-ansible.git'*/ git([url: 'https://github.com/rbouikila/img-ansible.git', branch: 'main']) } } stage('Building image') { steps{ script { dockerImage = docker.build registry + ":$BUILD_NUMBER" } } } stage('Deploy Image') { steps{ script { docker.withRegistry( '', registryCredential ) { /*dockerImage.push()*/ dockerImage.push("$BUILD_NUMBER") dockerImage.push('latest') } } } } stage('Remove Unused docker image') { steps{ sh "docker rmi $registry:$BUILD_NUMBER" sh "docker rmi $registry:latest" } } } }