Expérience CI / CD avec katacoda (pour les débutants) --Partie10 (Création d'images Docker à l'aide de Jenkins)

Introduction à CI / CD

Dans cette page, nous allons pratiquer CI / CD en utilisant "katacoda" (https://www.katacoda.com/), un "service web qui vous permet de lancer des instances d'étude gratuitement depuis un navigateur". Le contenu suit le lien ci-dessus, donc si vous avez des questions, veuillez y aller.

build docker container avec jenkins --Construire des images Docker à l'aide de Jenkins

Ici, nous présentons un exemple d'utilisation de jenkins, qui est le cœur de CI / CD. Vérifiez ** Aperçu ** pour une confirmation rapide de ce que vous apprendrez dans ce scénario ** Si vous avez des erreurs dans votre compréhension, veuillez nous en informer **

Présentation </ font>

-Suivez les étapes ci-dessous pour construire un conteneur avec jenkins

  1. Installez un plugin spécifique
  2. paramètres du plugin
  3. Paramètres de l'agent Jenkins
  4. Créez un projet à exécuter par l'agent jenkins
  5. exécution du projet

Launch Jenkins Tout d'abord, exécutez la commande suivante pour exécuter jenkins en tant que conteneur docker.

docker run -d -u root --name jenkins \   //Exécution en arrière-plan, utilisateur root, nom du conteneur"jenkins"
    -p 8080:8080 -p 50000:50000 \   //Le port 8080 est pour le tableau de bord Web et le port 50000 pour la communication avec l'agent jenkins
    -v /root/jenkins_2112:/var/jenkins_home \   //Chemin de montage côté hôte et chemin côté conteneur
    jenkins/jenkins:2.112-alpine   

Cette fois, il y a un autre terminal hôte Pour l'accès, connexion ssh

$ docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                              NAMES
6048602eb5b9        jenkins/jenkins:2.112-alpine   "/sbin/tini -- /usr/…"   2 minutes ago       Up2 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

Après avoir confirmé que le conteneur a bien réussi l'historique, déplacez-vous de ce lien (par défaut) Pour vous connecter, admin '', 344827fbdbfb40d5aac067c7a07b9230 '' L'environnement est comme ça

図1.png

Configure Docker Plugin Ici, définissez le plugin Docker En définissant le plugin Docker, jenkins peut communiquer avec le démon docker via l'agent (voir le diagramme schématique ci-dessous).

図4.png

Cliquez comme suit sur le tableau de bord Gérer Jenkins> Gérer les plugins> Docker dans l'onglet disponible> Installer sans redémarrer

Ce plugin est traité comme un fournisseur cloud Le conteneur (agent jenkins) démarre uniquement lors de la communication avec l'hôte docker.

Add Docker Agent Ici, définissez la configuration sur "démarrer le conteneur" dans l'agent préparé précédemment.

Cliquez comme suit sur le tableau de bord Entrez tcp: //172.17.0.67: 2345``` (serveur docker) dans "Docker"> URI de l'hôte Docker depuis Gérer Jenkins> Configurer le système> Ajouter un nouveau cloud Communication réussie avec le démon Docker avec cette procédure Pour vérifier, comparez le résultat de Tester la connexion '' de l'URI de l'hôte Docker avec le résultat de la saisie de version docker '' sur la console.

図3.png

$ docker version
Client:
 Version:      18.05.0-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   f150324
 Built:        Wed May  9 22:16:25 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.10
  Git commit:   0520e24302
  Built:        Fri Mar 23 01:48:12 2018
  OS/Arch:      linux/amd64
  Experimental: false

Ensuite, définissez le conteneur d'agent

  1. Docker Agent templates
  2. Add Docker Template
  3. Remplissez l'étiquette de l'agent docker-agent```
  4. Remplissez l'image du conteneur benhall / dind-jenkins-agent: v2```
  5. Paramètres de montage du volume `` `/ var / run / docker.sock: / var / run / docker.sock```
  6. Spécifiez la méthode de connexion avec le conteneur d'agent Se connecter avec SSH```
  7. save

図2.png

Create Build Project Ici, définissez le conteneur à exécuter en utilisant le "jenkins-agent" mentionné précédemment. La procédure est la suivante

  1. Créez un travail avec Créer de nouveaux emplois '' ``
  2. Sélectionnez `` Projet Freestyle '' et sélectionnez "Démo Katacoda Jenkins" comme nom du projet.
  3. Lors de la création du conteneur, sélectionnez "dokcer-agent" (créé à l'étape précédente) qui peut faire une requête au démon Docker.
  4. Spécifiez Git repository comme image de conteneur à exécuter.
  5. Sélectionnez Execute Shell dans `` `` Add Build Step, décrivez les détails de la construction comme suit et enregistrez
ls
docker info
docker build -t katacoda/jenkins-demo:${BUILD_NUMBER} .
docker tag katacoda/jenkins-demo:${BUILD_NUMBER} katacoda/jenkins-demo:latest
docker images

図1.png

Build Project Ici, exécutez réellement le conteneur construit par jenkins à partir du tableau de bord build nowCliquez sur

Le conteneur jenkins-agent est démarré à partir du conteneur jenkins, et il faut un certain temps pour démarrer le conteneur à partir de là en fonction du dockerfile de Git. Parfois, le tableau de bord affichera l'erreur pending — Jenkins n'a pas d'étiquette docker-agent ''.

View Console Output Après avoir confirmé que le conteneur a démarré à partir de jenkins, exécutez le conteneur sur la console.

$ docker run -d -p 80:80 katacoda/jenkins-demo:latest

~~~

$ curl host01
<h1>This request was processed by host: </h1> 

図3.png

docke imageVérifiez l'image du conteneur avec

図2.png

benhall/dind-jenkins-agentEst docker-image de l'agent

katacoda/jenkins-demoMontre la création d'un conteneur par jenkins En outre, en se concentrant sur la partie TAG '', il existe trois types, 1,2, dernier ''. Cela signifie qu'à l'étape 5 du "Créer un projet de construction", $ {BUILD_NUMBER} a été géré comme une balise, et le processus de construction du conteneur par jenkins a été effectué deux fois.

Recommended Posts

Expérience CI / CD avec katacoda (pour les débutants) --Partie10 (Création d'images Docker à l'aide de Jenkins)
Pratique CI / CD pour débutants - Partie 2 - Construction d'outils CI / CD
Pratique CI / CD pour débutants - Partie 1 - Construction de l'environnement
Pratique CI / CD pour débutants - Partie 3 - Préparation d'un projet de développement
Construction d'environnement avec Docker pour les débutants
Apprenez de «Et alors», les bases de Java [pour les débutants]
Expérience CI / CD avec katacoda (pour les débutants) --Partie10 (Création d'images Docker à l'aide de Jenkins)
[Pour les débutants] Testez l'enregistrement des utilisateurs avec RSpec
[Rails] Les débutants peuvent redimensionner les images avec image_tag (tâtonnement)
Construction d'environnement avec Docker pour les débutants
Essayez de créer Express + PostgreSQL + Sequelize avec Docker [Partie 2]
Essayez de créer Express + PostgreSQL + Sequelize avec Docker [Partie 1]
Mémorandum bifurqué pour débutants (Partie 3 Réalisation à l'aide de cours)
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0
Mesures des autorisations lors de la construction de MySQL avec Docker sur WSL2