Installer Jenkins dans Docker (Windows)
Explication détaillée
mkdir D:\liuqinchong\jenkins # 新建Jenkins工作目录,用于跟容器中Jenkins目录挂在
docker pull jenkins/jenkins:lts # 拉取Jenkins镜像
#下方命令在windows中可不用
ls -nd /home/Jenkins # 查看目录归属ID
chown -R 1000:1000 /home/jenkins # 赋予权限
1. Résolvez l'erreur d'autorisation :
Étant donné que l'utilisateur dans le conteneur Jenkins est Jenkins, mais que l'utilisateur hôte n'est pas Jenkins, même root signalera une erreur : /var/jenkins_home/copy_reference_file.log : autorisation refusée. À ce stade, vous devez attribuer l'adresse de l'hôte sur le hôte pour accéder au conteneur Jenkins. Autorisations, Jenkins utilise en interne l'utilisateur avec l'uid 1000
2. Commandes courantes pour créer des conteneurs avec docker :
docker run -dt --name jenkins -p 9090:8080 -p 50000:50000 --privileged=true -v D:\liuqinchong\jenkins:/var/jenkins_home jenkins/jenkins:lts # 运行Jenkins容器
-privileged=true : permet au conteneur d'avoir les privilèges root, il est facile d'entrer dans le conteneur
-p 9090:8080 : Spécifie que le port 9090 de l'hôte est mappé au port 8080 du conteneur Jenkins (port d'accès Web de Jenkins)
-v D:\liuqinchong\jenkins:/var/jenkins_home : le chemin du conteneur /var/jenkins_home est monté sur le chemin de la machine hôte D:\liuqinchong\jenkins (ma machine hôte ici est Windows)
docker ps #用于查看容器列表
docker exec -it jenkins /bin/bash #进入容器,可使用容器名称,也可以使用容器id进入
3. Source de configuration
Avant d'ouvrir Jenkins, vous pouvez remplacer la source du site officiel
. Recherchez le répertoire de travail de Jenkins et ouvrez le fichier hudson.model.UpdateCenter.xml
vim /var/jenkins_home/hudson.model.UpdateCenter.xml
docker restart jenkins #重启Jenkins
Modifiez le contenu dans la zone rouge en https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
4. Ouvrez Jenkins et installez le plugin :
Utilisez le port ip plus du conteneur pour ouvrir Jenkins (les commandes telles que ifconfig ne peuvent pas être utilisées dans le conteneur, elles doivent être installées séparément)
choisissez d'installer le plug-in recommandé (car la source miroir n'est pas configurée, le processus de téléchargement est lent )
vous pouvez utiliser la commande suivante pour remplacer l'url
cd /var/jenkins_home/updates #进入容器并切换到updates目录
sed -i 's#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g' default.json && sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json #替换url
Actualisez ensuite la page de téléchargement du plug-in ci-dessus, cliquez sur Continuer
5. Configuration de l'environnement Jenkins
1) Installer les commandes communes
docker exec -it -u root 容器id /bin/bash #进入容器
cat /etc/issue #查看当前操作系统
Le conteneur peut ne pas avoir certaines commandes courantes et doit être téléchargé
apt-get install -y vim
Si les problèmes ci-dessus surviennent, utilisez la commande suivante pour mettre à jour apt-get. Le processus de mise à jour peut être lent. Une fois la mise à jour terminée, vous pouvez utiliser la commande apt-get pour effectuer une nouvelle installation.
Remarque : Il peut également y avoir des problèmes sans autorisations
Solution:
docker exec -it -u root jenkins /bin/bash #指定root用户进入
#删除提示的两个文件
rm -rf /var/lib/dpkg/lock
rm -rf /var/cache/apt/archives/lock
passwd root #给root设置密码,下次无权限时可直接切换root用户
apt-get update
2) configuration appropriée de la source cloud Alibaba
Le processus peut être lent, vous pouvez modifier la configuration appropriée pour ajouter la source Alibaba Cloud
# 修改 apt-get 源的配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
echo > /etc/apt/sources.list #清空源
cat /etc/apt/sources.list #查看是否清空
#向/etc/apt/sources.list文件中,写入源地址
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
apt-get update #更新
3) Commandes courantes pour l'installation d'apt-get :
installe miam
apt-get update && apt-get install yum
bash : ip : commande introuvable
apt-get update && apt-get install -y iproute2
bash : ping : commande introuvable
apt-get update && apt install iputils-ping
bash : ifconfig : commande introuvable
apt-get update && apt install net-tools
bash : vi : commande introuvable
apt-get update && apt-get install vim
bash : route : commande introuvable
apt-get update && apt-get install -y iproute2 && apt-get update && apt install net-tools
bash : netstat : commande introuvable
apt-get update && apt install net-tools
bash : ps : commande introuvable
apt-get update && apt-get install procps
bash : top : commande introuvable
apt-get update && apt-get install procps
6. Configurez l'environnement Python3
1) Installez python3 dans le conteneur Jenkins
Il n'y a pas d'environnement Python3 dans le conteneur Jenkins, vous devez l'installer vous-même :
Remarque : pour le système Ubuntu, utilisez apt-get au lieu de yum ici.
Il est recommandé d'utiliser la commande aptitude install pour installer les outils suivants afin de résoudre efficacement les dépendances. Voir ci-dessous pour une explication détaillée. apt-get install et aptitude install peuvent être remplacés l'un par l'autre.
apt install aptitude #安装aptitude
#apt-get安装依赖包
aptitude -y install gcc automake autoconf libtool make
aptitude -y install make*
aptitude -y install zlib*
aptitude -y install openssl libssl-dev
aptitude install sudo
# 安装Python3
cd /var/jenkins_home
mkdir python3
cd python3
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz # 获取python-3.6.8.tgz包
tar -xvf Pyhthon-3.6.8.tgz #解压
cd Python-3.6.8 # 切换到Python-3.6.8目录
#执行make和make install安装
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install
# 添加软连接
# 添加Python3软连接
ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3
# 添加pip3软连接
ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
# 安装所需Python库
pip3 instal requests pytest-html pytest
2) Solutions courantes aux problèmes rencontrés lors de l'installation :
Il peut y avoir un message d'erreur lors de l'installation
Solution 1. Utilisez aptitude pour installer (recommandé) :
使用aptitude,aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。
与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。
举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。
这样,系统中不会残留无用的包,整个系统更为干净。此处不做赘述。
apt install aptitude #安装aptitude
有的问题 apt-get 解决不了,必须使用 aptitude 解决,有的问题,用 aptitude 解决不了,必须使用apt-get.
aptitude 解决得更好的地方: install, remove, reinstall(apt-get无此功能), show(apt-get无此功能), search(apt-get无此功能), hold(apt-get无此功能), unhold(apt-get无此功能),
apt-get 解决得更好的地方: source(aptitude无此功能), build-dep (低版本的aptitude没有build-dep功能)
apt-get 跟 aptitude 没什么区别的地方:update, upgrade (apt-get upgrade=aptitude safe-upgrade, apt-get dist-upgrade=aptitude full-upgrgade)
sudo aptitude install
Option 2. Utilisez yum pour installer :
安装配置yum,上方已经安装好yum,接下来配置源
由于是Ubuntu没有yum源,所以要想使用yum安装软件必须要配置yum安装源。
在/etc/yum/repos.d/目录下创建两个文件,fedora-163.repo和fedora-updates-163.repo。
分别复制以下配置信息保存即可。
fedora-163.repo configure les informations suivantes
[fedora]
name=Fedora 17 - $basearch - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/releases/17/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-17&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
[fedora-debuginfo]
name=Fedora 17 - $basearch - Debug - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/releases/17/Everything/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-17&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
[fedora-source]
name=Fedora 17 - Source - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/releases/17/Everything/source/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-17&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
Les informations de configuration de fedora-updates-163.repo sont les suivantes
[updates]
name=Fedora 17 - $basearch - Updates - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/updates/17/$basearch/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f17&arch=$basearch
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
[updates-debuginfo]
name=Fedora 17 - $basearch - Updates - Debug - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/updates/17/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f17&arch=$basearch
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
[updates-source]
name=Fedora 17 - Updates Source - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/updates/17/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f17&arch=$basearch
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
dernière exécution
yum makecache