Configurer un serveur Jenkins à l'aide de Docker

Configurer Un Serveur Jenkins A L Aide De Docker



Jenkins est un serveur d'automatisation open source largement utilisé qui permet d'automatiser les différentes parties du processus de développement logiciel, notamment la création, le test et le déploiement d'applications.

Docker est une plateforme de conteneurisation qui nous permet d'exécuter les applications et les services dans des environnements isolés appelés conteneurs.







Dans ce tutoriel, nous apprendrons comment combiner Jenkins avec Docker, ce qui nous permet de créer un serveur Jenkins évolutif et portable.



REMARQUE : dans ce didacticiel, nous utiliserons l'image officielle jenkins/jenkins du référentiel Docker Hub. Cette image contient la version actuelle de support à long terme (LTS) de Jenkins qui est prête pour la production.



Créer un réseau

La première étape consiste à créer un nouveau réseau Docker pour isoler l'instance Jenkins. Cela facilite une meilleure communication.





Pour créer un réseau ponté dans Docker, nous pouvons exécuter la commande suivante :

$ le réseau Docker crée Jenkins


Cela crée un réseau ponté appelé Jenkins.



Exécutez le conteneur Docker Jenkins

Une fois le réseau configuré, nous pouvons exécuter le conteneur Jenkins en utilisant l'image officielle Jenkins Docker.

Nous spécifions également le réseau et configurons un volume pour la persistance des données Jenkins. La commande est la suivante :

exécution du docker \
--nom jenkins-docker \
--rm \
--détacher \
--privilégié \
--réseau jenkins \
--alias-réseau menu fixe \
--env DOCKER_TLS_CERTDIR = / certificats \
--volume jenkins-docker-certs : / certificats / client \
--volume Jenkins-données : / était / jenkins_home \
--publier 2376 : 2376 \
docker : de \
--stockage-pilote superposition2



La commande précédente lance un conteneur Docker-in-Docker (DinD) nommé « jenkins-docker » avec des privilèges élevés et des configurations réseau.

L'indicateur –rm garantit que le conteneur est automatiquement supprimé lorsqu'il s'arrête. Le conteneur est connecté au réseau Jenkins avec l'alias de réseau « docker » tel que créé à l'étape précédente.

Nous définissons ensuite les variables d'environnement pour les certificats Docker TLS et montons les volumes pour le stockage des certificats et les données Jenkins.

Dans la section suivante, nous publions le port 2376 pour la communication du démon Docker.

Enfin, nous spécifions l'image docker:dind et configurons le pilote de stockage pour utiliser l'overlay2.

Accéder à l'interface utilisateur Web de Jenkins

Une fois le conteneur démarré, nous pouvons accéder à l'instance Jenkins depuis un navigateur Web en utilisant le adresse.

Si vous souhaitez exécuter un simple conteneur Jenkins, vous pouvez utiliser la commande suivante :

$ exécution du docker -d -p 8080 : 8080 -p 50000 : 50000 --nom jenkins \
--réseau jenkins \
-dans jenkins_home : / était / jenkins_home \
jenkins / Jenkins : lts


Cela exécute le serveur Jenkins sans avoir besoin de configurer les autres fonctionnalités telles que les volumes, les ports de liaison, etc.

Vous pouvez ensuite accéder à l'instance Jenkins sur .


Une fois Jenkins prêt, votre navigateur vous permettra de configurer rapidement le serveur Jenkins avec les propriétés que vous souhaitez.

Une fois configuré, vous devez déverrouiller Jenkins en spécifiant le mot de passe administrateur. Vous pouvez le trouver en exécutant la commande suivante :

$ Docker enregistre Jenkins


La commande vous montre les journaux du conteneur qui incluent le mot de passe Jenkins.




L'étape suivante consiste à choisir et installer les plugins que vous souhaitez utiliser pour votre instance Jenkins. Si vous utilisez Jenkins pour la première fois, choisissez les plugins recommandés.


Cela devrait permettre à Jenkins de télécharger et d'installer tous les plugins par défaut, ce qui vous permet d'interagir facilement avec les pipelines Jenkins.

Conclusion

Dans ce didacticiel, vous avez appris comment configurer un serveur Jenkins en tant que conteneur à l'aide de Docker et de l'image officielle de Jenkins.