Jenkins.md 2,57 ko
Newer Older
dm091610's avatar
dm091610 a validé
# Installation de Jenkins

## Jenkins
ts163424's avatar
ts163424 a validé
Pour l'intallation de Jenkins, on a choisi d'utilser un conteneur Dockerfile qui est un fichier qui contient l'ensemble des commandes nécessaires pour la création d'un conteneur docker.

Description de notre fichier Dockerfile :
ts163424's avatar
ts163424 a validé

ts163424's avatar
ts163424 a validé
Récupération de l'image de base de debian

ts163424's avatar
ts163424 a validé
    FROM debian:9.1
 
ts163424's avatar
ts163424 a validé
Installation des différents packages qui vont étre utiliser dans notre conteneur docker comme par exemple Git ou jdk8 de java qui sera utilisé dans jenkins 
ts163424's avatar
ts163424 a validé

    RUN apt-get update
    RUN apt-get -y install wget gnupg2 default-jre openjdk-8-jdk apt-transport-https git
 
ts163424's avatar
ts163424 a validé
Pour l'installation de jenkins on commence par recupérer la clé publique ssh, on rajoute l'adresse du depots à la fin du fichier sources.list, on fait la mise à jour de nos depots puis on installe le package jenkins
ts163424's avatar
ts163424 a validé

    RUN wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add -
    RUN echo 'deb http://pkg.jenkins.io/debian-stable binary/' >> /etc/apt/sources.list
    RUN apt-get update
    RUN apt-get -y install jenkins
 
ts163424's avatar
ts163424 a validé
On crée le fichier init.sh qui lancera jenkins automatiquement à chaque démarrage du conteneur
ts163424's avatar
ts163424 a validé

    RUN echo '#!/bin/bash \nservice jenkins start \necho '-- Wait for key generation --' \nsleep 5 \ncat /var/lib/jenkins/secrets/initialAdminPassword \necho 'Unlock security and restart container whith -d' \ntail -f /dev/null' >> /init.sh
    RUN echo '#!/bin/bash \nservice jenkins start \ntail -f /dev/null' >> /init.sh
    RUN chmod 777 /init.sh
 
ts163424's avatar
ts163424 a validé
On ouvre le port 8080 avec EXPOSE
ts163424's avatar
ts163424 a validé

    CONFIG
    USER root
    EXPOSE 8080


    CONFIG autostart

ts163424's avatar
ts163424 a validé
Enfin le ENTRYPOINT permet au conteneur à chaque démarrage de lancer le fichier inti.sh
ts163424's avatar
ts163424 a validé

    ENTRYPOINT ["/bin/bash", "--", "/init.sh"]
ts163424's avatar
ts163424 a validé
    
Une fois la crétion du conteneur est finalisé, on crée le volume qui lui associé avec la commande suivante:

    sudo docker volume create --name jenkins_data
    

Maintenant on va lancer Jenkins avec la commande 

    docker-compose up
ts163424's avatar
ts163424 a validé

ts163424's avatar
ts163424 a validé
Aprés on ouvre notre navigateur et aller sur le localhost sur le port 8080, Jenkins va demander une clé qu'on retrouvera sur le terminal. Il suffit de la copier-coller sur le site.
ts163424's avatar
ts163424 a validé

ts163424's avatar
ts163424 a validé
![jenkins-accueil-avant-passwd](img/jenkins-accueil-avant-passwd.png)
ts163424's avatar
ts163424 a validé

Ensuite on installe les plugins souhaités ici on va se contenter des plugins suggérés

ts163424's avatar
ts163424 a validé
![Jenkins-choix-plugins](img/Jenkins-choix-plugins.png)
ts163424's avatar
ts163424 a validé

maintenant il ne nous reste qu'a créer notre utilisateur


dm091610's avatar
dm091610 a validé
Section suivante → [Projet GitLab sur Jenkins] (https://www-apps.univ-lehavre.fr/forge/dm091610/Toturiel_Docker_Jenkins/edit/master/src/IntegrationJenkins.md)