docker安装jenkins
#拉取镜像
docker pull jenkins/jenkins:lts
启动容器
#目录映射
mkdir -p /mydata/jenkins_home
#启动容器 端口8080(前)映容器的8080端口(后)
docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
ip:8080进不去 权限问题
#查看正在启动的容器 发现jenkens没有启动
docker ps
#修改权限 把需要挂载的宿主机目录权限拥有者赋值给uid=1000
chown -R 1000 /mydata/jenkins_home/
#删除原来的容器
docker rm jenkins
#重新运行
docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
#如果想要开机自动重启容器,可以设置 docker update --restart=always jenkins
获取密码
方一:进入容器 运行 得到密码
docker exec -it 8d142693a9f4 /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
1bbc9a82af404c819844f77ff57a6dd4
方二:日志查看
docker logs jenkins
方三:
cd /mydata/jenkins_home
ll
cd secrets
cat initialAdminPassword
输入密码后:
实例配置 ip:8080 ->开始使用
解决插件安装失败
[root@localhost mydata]# cd jenkins_home/
[root@localhost jenkins_home]# ll
总用量 68
-rw-r--r-- 1 mysql8 mysql8 1663 9月 25 10:47 config.xml
-rw-r--r-- 1 mysql8 mysql8 50 9月 25 10:47 copy_reference_file.log
-rw-r--r-- 1 mysql8 mysql8 156 9月 25 10:47 hudson.model.UpdateCenter.xml
-rw------- 1 mysql8 mysql8 1712 9月 25 10:47 identity.key.enc
-rw-r--r-- 1 mysql8 mysql8 6205 9月 25 11:17 jenkins.install.InstallUtil.installingPlugins
-rw-r--r-- 1 mysql8 mysql8 7 9月 25 11:20 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r-- 1 mysql8 mysql8 7 9月 25 11:20 jenkins.install.UpgradeWizard.state
-rw-r--r-- 1 mysql8 mysql8 182 9月 25 11:20 jenkins.model.JenkinsLocationConfiguration.xml
-rw-r--r-- 1 mysql8 mysql8 171 9月 25 10:47 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 mysql8 mysql8 6 9月 25 10:47 jobs
-rw-r--r-- 1 mysql8 mysql8 907 9月 25 10:47 nodeMonitors.xml
drwxr-xr-x 2 mysql8 mysql8 6 9月 25 10:47 nodes
drwxr-xr-x 90 mysql8 mysql8 12288 9月 25 11:17 plugins
-rw-r--r-- 1 mysql8 mysql8 64 9月 25 10:47 secret.key
-rw-r--r-- 1 mysql8 mysql8 0 9月 25 10:47 secret.key.not-so-secret
drwx------ 4 mysql8 mysql8 265 9月 25 10:47 secrets
drwxr-xr-x 2 mysql8 mysql8 104 9月 25 11:09 updates
drwxr-xr-x 2 mysql8 mysql8 24 9月 25 10:47 userContent
drwxr-xr-x 3 mysql8 mysql8 56 9月 25 10:47 users
drwxr-xr-x 11 mysql8 mysql8 4096 9月 25 10:47 war#因为网络原因,需要将插件源设置为国内的,这样才可以安装插件
[root@localhost jenkins_home]# cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>[root@localhost jenkins_home]# vim hudson.model.UpdateCenter.xml#将 url 内容修改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json(清华大学官方镜像)
[root@localhost jenkins_home]# cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>#重启容器
[root@localhost jenkins_home]# docker restart jenkins
jenkins
[root@localhost jenkins_home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c6c0aa542ee jenkins/jenkins:lts "/sbin/tini -- /usr/…" About an hour ago Up 8 seconds 0.0.0.0:32772->8080/tcp, :::32772->8080/tcp, 0.0.0.0:32771->50000/tcp, :::32771->50000/tcp jenkins
40f677fcab1a nginx "/docker-entrypoint.…" 2 hours ago Up About an hour 0.0.0.0:9090->80/tcp, :::9090->80/tcp nginx-agile-micro
25c87ad1c0b3 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up About an hour 33060/tcp, 0.0.0.0:7777->3306/tcp, :::7777->3306/tcp mysql01
0c2f64b8e644 2ed7f9567afe "java -jar /app.jar …" 16 hours ago Up About an hour 0.0.0.0:32768->8080/tcp, :::32768->8080/tcp zhumq-springboot-web
517775a1d963 portainer/portainer "/portainer" 4 days ago Up About an hour 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp musing_wu
8b5555b449b2 rabbitmq:management "docker-entrypoint.s…" 4 days ago Up About an hour 4369/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp, 0.0.0.0:25672->25672/tcp, :::25672->25672/tcp, 0.0.0.0:61613->61613/tcp, :::61613->61613/tcp, 15691-15692/tcp rabbitmq
[root@localhost jenkins_home]# curl localhost:32772
<html><head><meta http-equiv='refresh' content='1;url=/login?from=%2F'/><script>window.location.replace('/login?from=%2F');</script></head><body style='background-color:white; color:white;'>
Authentication required
<!--
--></body></html>
没用到,我是直接升级jenkins版本的->2.4
Jenkins插件管理(掌握)
插件镜像加速
Jenkins默认是从外网的插件仓库下载插件的,速度在国内来说就慢了很多,我们可以通过将插件地址修改为国内镜像仓库,即可提升插件的下载速度
#在 Jenkins首页进入插件管理页面,进入 Avaliable 可选产检页面 #进入 jenkins_home修改已加载的所有插件下载地址,所有插件数据所在文件jenkins_home/updates/default.json #将该文件中所有插件的地址修改为国内的地址 #容器内 cd 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 #最后在zenkins的插件管理页面 Manage Plugins 点击 Advanced,把 update site改为国内插件下载地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json #提交后,在浏览器输入: http : / /jenkins_server_ip:port/restart重启 jenkins #需要 docker start 容器id 还需要手动启动 docker volume inspect jenkins-data 安装插件(TAG:可选插件) Maven Integration Publish Over SSH
问题:
构建报错:没有mvn命令
发现maven插件没有安装上了或者 已经安装了但是 还是没有mvn
[root@localhost ~]# docker exec -it 13bdd16cbd63 /bin/bash [root@13bdd16cbd63 /]# find / -name "setting.xml"
没有配置文件
此时去,maven官网直接copy路径
进入官网 Maven – Welcome to Apache Maven ->Download->找到Files 选择版本 邮件复制链接地址
eg:https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
在linux中 wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
显示有错 则按照提示的添加命令内容 --no-check-certificate
下载之后 此时则进行配置
(主机中)
cd /var/lib/docker/volumes/jenkins-data5/_data/
ls
wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
[root@localhost _data]# tar -zxvf apache-maven-3.9.4-bin.tar.gz
[root@localhost _data]# vim apache-maven-3.9.4/conf/settings.xml
[root@localhost _data]# vim apache-maven-3.9.4/conf/settings.xml
maven镜像仓库
<mirrors> <mirror> <id>central</id> <mirrorOf>*</mirrorOf> <name>Central Repository</name> <url>http://10.10.36.240:8086/repository/public/</url> </mirror> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
没有mvn命令
进入jenkins->系统管理->全局配置工具
1.Maven 安装 中 (先取消自动安装)
Name:maven-3.9.4
MAVEN_HOME:/var/jenkins_home/apache-maven-3.9.4
2.Maven 配置
默认 settings 提供 ->文件路径选择 文件系统中的settings 文件 ->文件路径:/var/jenkins_home/apache-maven-3.9.4/conf/setting.xml (容器内部的)
默认全局 settings 提供->文件路径选择 文件系统中的全局settings文件 ->文件路径:/var/jenkins_home/apache-maven-3.9.4/conf/setting.xml
配置完成 重新构建 则成功!
Jenkins各版本下载地址
Index of /jenkins/war-stable/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
插件安装问题解决:
升级jenkins!
war部署版
打开部署war包的地方,将下载的jenkins.war
替换掉原war
包,重启即可
Docker版(本次是这个)
-
将下载的jenkins.war包上传到服务器,我上传的在/home/zhumq/jenkins目录下 (xftp上传)
-
进入jenkins容器(命令中的jenkins为容器的名称,根据自己的实际名称进行更改,可以docker ps查看容器信息来获取容器名称) docker exec -it -u root jenkins /bin/bash
-
查找jenkins位置 whereis jenkins 如图所示,默认路径为/usr/share/jenkins
-
替换旧war包 (容器外) docker cp /home/zhumq/jenkins/jenkins.war jenkins:/usr/share/jenkins/
-
重新启动容器 docker restart jenkins