Jenkins - 3 Préparer une image Docker avec un service SSH
Jusqu'ici, les scripts Jenkins s'exécutent dans le conteneur Jenkins. Pour les lancer sur une autre machine, il faut une connexion SSH. Cette leçon prépare une machine distante sous forme de conteneur, à partir d'un fichier Dockerfile.
Choisir la méthode
La vidéo propose deux options : créer une machine virtuelle distante, ou créer un second conteneur qui joue ce rôle. Elle retient la seconde option, un conteneur qui possède son propre service SSH.
Ce conteneur doit être créé à partir d'une image. Le fichier Dockerfile décrit cette image, instruction après instruction.
Écrire le Dockerfile
La première instruction, FROM, indique le système d'exploitation de base. La vidéo utilise CentOS 7.
Une instruction RUN exécute une commande pendant la création de l'image. La vidéo ajoute une commande qui prépare le serveur SSH, puis une commande RUN qui crée l'utilisateur remote_user.
FROM centos:7
RUN useradd remote_user
Préparer l'utilisateur et son dossier
Un mot de passe est ensuite donné à l'utilisateur remote_user. La vidéo crée aussi un dossier .ssh pour cet utilisateur.
- Donner un mot de passe à remote_user avec passwd.
- Créer le dossier .ssh pour cet utilisateur.
- Appliquer chmod 700 sur ce dossier : seul remote_user peut lire et écrire, personne d'autre ne peut modifier son contenu.
En résumé
Le Dockerfile décrit une image CentOS 7 avec un serveur SSH et un utilisateur. Cette image servira de machine distante. La leçon suivante configure la clé SSH et termine le démarrage du service.
Points clés
- Un conteneur peut jouer le rôle d'une machine distante.
- Le Dockerfile décrit l'image instruction par instruction.
- L'instruction FROM indique le système de base, ici CentOS 7.
- L'utilisateur remote_user reçoit son propre dossier .ssh.
- Les permissions limitent l'accès au dossier à son propriétaire.
Questions fréquentes
Pourquoi créer un conteneur plutôt qu'une machine virtuelle ?
La vidéo retient l'option du conteneur, plus simple à construire avec Docker. Elle reste proche du rôle d'une machine distante.
À quoi sert l'instruction RUN ?
Elle exécute une commande pendant la construction de l'image. Le résultat est ensuite inclus dans l'image.
Que fait chmod 700 ?
Il donne au seul propriétaire le droit de lire et d'écrire dans le dossier. Les autres utilisateurs n'ont aucun droit.