Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能
docker如何安装jenkins?
安装Docker
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
docker -v
systemctl start docker
systemctl enable docker
docker version
docker images
修改镜像源
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
#加载文件
systemctl daemon-reload
#重启docker
systemctl restart docker.service
安装Maven
因为我们的项目是java项目,采用的maven管理jar,如果采用安装完jenkins后在线直接安装的话,会非常慢,所以我们提前在宿主机安装好maven,然后采用docker 挂载的方式进行安装处理
# 进入你要安装的目录
cd /目录
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -xzvf apache-maven-3.6.3-bin.tar.gz
cd /目录/apache-maven-3.6.3
修改Maven的仓库路径:
vi /目录/apache-maven-3.6.3/conf/settings.xml
# 大概在150行
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
添加环境变量:
vi /etc/profile
export M2_HOME=/目录/apache-maven-3.6.3
export PATH=$PATH:${M2_HOME}/bin
source /etc/profile
mvn -version
Jenkins 安装
docker pull jenkins/jenkins
# 创建jenkins 的数据目录
mkdir /home/jenkins_home
# 记得赋予挂载目录的权限,不然启动会报错误
sudo chown -R 1000:1000 /home/jenkins_home
# 启动jenkins,并且挂载数据目录以及maven安装目录,这里的目录请换成自己的安装目录
docker run --restart=always -d --name jenkins -p 8888:8080 -v /etc/localtime:/etc/localtime:ro -v /home/jenkins_home:/var/jenkins_home -v /目录/apache-maven-3.6.3:/usr/local/maven jenkins/jenkins
访问Jenkins
回到服务器内查看密码
docker exec -i -t jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
拿到密码后直接登录,按照推荐方式进行软件安装就好,到此docker安装jenkins就搭建好啦,下章安排jenkins做自动化部署springboot的项目
注意事项
#如果遇到无法启动,请尝试以下方式解决
docker logs -tf --tail=100 jenkins
# 看看是否有存在Wrong volume permissions? 将你的挂载目录赋予权限
sudo chown -R 1000:1000 /home/jenkins_home
如果jenkins升级了,怎么办呢?
# 进入 jenkins 的数据挂载目录
cd /home/jenkins_home
# 拉取包
wget http://mirrors.jenkins.io/war/latest/jenkins.war
# 进入docker容器
docker exec -it -u root jenkins /bin/bash
# 查看容器中jenkins war包的位置,并备份原来的war包
whereis jenkins
cd /usr/share/jenkins
cp jenkins.war jenkinsBAK.war
# 将/var/jenkins_home下的包cp到/usr/share/jenkins下覆盖
cp /var/jenkins_home/jenkins.war /usr/share/jenkins/
#退出容器并重启
exit
docker restart jenkins
jenkins 插件下载慢问题解决方法
# 进入 jenkins 的数据挂载目录
cd /home/jenkins_home/updates
# 替换插件源路径
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
# 重启jenkins
docker restart jenkins