【Jenkins】尚硅谷Jenkins教程所遇问题及处理

尚硅谷Jenkins教程所遇问题及处理

前言

本教程主要解决的问题以及问题发生的顺序根据以下教程
【尚硅谷】Jenkins教程(从配置到实战)

主要记录了我在学习过程中遇到的问题以及各个问题的解决方法。

具体问题

  1. 问题1(出现于第6节):gitlab安装后无法通过输入IP地址访问到

    解决方案:

    • 首先使用systemctl stop firewalld关闭虚拟机防火墙
    • 检查虚拟机网络配置,比如是否能够ping www.baidu.com
    • 使用ip add命令查看网络状况,确认虚拟网络接口virbr0 状态
  2. 问题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
  1. 问题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

  1. 问题4(第9节):Jenkins.war包安装发生端口冲突

    可使用命令java -jar jenkins.war --httpPort=8088指定端口解决冲突。

  2. 问题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后的包名

  1. 问题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包即可。

  1. 问题7:偶遇网卡启动失败情况

    表现为:输入ip add看不到地址。

  2. 问题8(第10节):maven下载依赖过慢

    使用以下依赖

xml 复制代码
<mirror>
        <id>aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Aliyun Maven</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  1. 问题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

希望对大家的学习过程有所帮助。

相关推荐
XIAOHEZIcode9 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw