Introduction
Nous allons voir à travers cette article comment utiliser la 'stack' logicielle Jenkins / Git et Docker pour builder ses conteneur.
Schéma
Implémentation de la plateforme
Step 1 - Docker
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.
Step 2 - Plugins
Nous allons installer le plugin “Docker Pipeline”.
Dans Manage Jenkins > Manage plugins > Available rechercher Docker Pipeline.
Step 3 - Utilisateur dockerhub
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”
Step 4 - Pipeline build
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" } } } }