尚硅谷Jenkins教程所遇问题及处理
前言
本教程主要解决的问题以及问题发生的顺序根据以下教程
【尚硅谷】Jenkins教程(从配置到实战)
主要记录了我在学习过程中遇到的问题以及各个问题的解决方法。
具体问题
-
问题1(出现于第6节):gitlab安装后无法通过输入IP地址访问到
解决方案:
- 首先使用
systemctl stop firewalld
关闭虚拟机防火墙 - 检查虚拟机网络配置,比如是否能够
ping www.baidu.com
- 使用
ip add
命令查看网络状况,确认虚拟网络接口virbr0 状态
- 首先使用
-
问题2(第7节):Docker添加容器出错
使用以下命令时出错,使用
docker -version
查看docker版本是否过低,过低会运行失败。
powershell
docker run --detach \
--hostname 192.168.114.130 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
可以通过下载docker压缩包并上传的方式解决,或者直接使用命令行下载新版yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
验证docker版本:
powershell
docker --version
启动docker:
powershell
sudo systemctl start docker
sudo systemctl enable docker
systemctl status docker
- 问题3(第7节):docker启动gitlab遇上端口冲突
报错信息为:
powershell
docker start gitlab
Error response from daemon: driver failed programming external connectivity on endpoint gitlab (095972a96efb8d8f8fd79d85e5798be5ef80ac984f1e5af453badca2bd1380de): Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use
Error: failed to start containers: gitlab
这个错误信息表明 Docker 在启动 GitLab 容器时遇到了端口冲突的问题,具体是端口 22 已经被其他应用程序占用。
检查端口占用情况:
powershell
sudo netstat -tuln | grep :22
方法一:
ps
命令查找进程 PID,然后使用 kill 命令终止进程:
powershell
kill <PID>
方法二:为gitlab更换端口
powershell
docker run --detach \
--hostname 192.168.114.130 \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:z \
--shm-size 256m \
gitlab/gitlab-ce:latest
将其更换为2222端口,更换后记得重启服务:docker start gitlab
-
问题4(第9节):Jenkins.war包安装发生端口冲突
可使用命令
java -jar jenkins.war --httpPort=8088
指定端口解决冲突。 -
问题5(第9节):Jenkins网页打开后,推荐依赖下载失败
报错内容为:
powershell
java -jar jenkins.war Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: executable/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)
为Jenkins版本过低导致的,在此处Download and deploy下载左边最新版安装包。
新版安装包需要使用jdk17。
首先卸载jdk8避免使用该版本导致错误:
powershell
检查java包版本:rpm -qa | grep java
卸载对应版本: yum remove java-1.8.0-openjdk*
JDK17下载参考链接CentOS 7 安装 JDK17(注意版本号要与自己的版本一致)_centos7 安装jdk17-CSDN博客
随后解压:tar -zxvf jdk-17.0.13_linux-aarch64_bin.tar.gz?AuthParam=1732620866_b1a50860d278ae9a135eef9fd0c2d3ad
注意修改zxvf后的包名
- 问题6(第9节):重新安装Jenkins.war包遇到报错
报错内容为:
powershell
java.io.IOException: Server returned HTTP response code: 400 for URL: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ?id=default&version=2.479.1
即为网络连接错误,推测为当发生问题5的依赖下载失败问题后修改了依赖下载路径为该镜像,原本Jenkins未清除即重新安装,导致出错。
除重装Jenkins:
powershell
rm -rf .jenkins
删除后重新安装war包即可。
-
问题7:偶遇网卡启动失败情况
表现为:输入ip add看不到地址。
- 使用网卡重启
systemctl restart network
- 还不行则参考该链接:CentOS网络配置与重启方法_centos重启网络配置-CSDN博客
- 使用网卡重启
-
问题8(第10节):maven下载依赖过慢
使用以下依赖
xml
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
- 问题9(第10节):jar文件打包过慢
根据教程创建daemon.json,需要注意的是手动尝试registry-mirrors代理链接是否能够链接,使用ping
命令,代理docker链接蛮容易失效的。
json
{
"registry-mirrors": ["https://docker.udayun.com"],
"features": {
"buildkit": false
}
}
可在尝试过程中使用:
powershell
重启服务:
systemctl daemon-reload
systemctl restart docker
重置服务失败状态:
systemctl reset-failed docker.service
希望对大家的学习过程有所帮助。