【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

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

相关推荐
悄悄敲敲敲19 分钟前
Linux:基础开发工具
linux·运维·服务器
YRr YRr21 分钟前
深入理解ROS中的参数服务器及其应用
运维·服务器·ros
红茶要加冰27 分钟前
一、docker简介
运维·docker·容器
万能菜道人34 分钟前
window下docker使用一些多媒体应用
运维·docker·容器
wxgnolux1 小时前
ssh 登入报错问题解决过程记录
运维·ssh
橘子真甜~1 小时前
Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)
linux·运维·服务器·c语言·io·文件操作·文件fd
A charmer1 小时前
Linux 权限管理:用户分类、权限解读与常见问题剖析
linux·运维·服务器
猫猫的小茶馆2 小时前
【Linux系统】Linux内核框架(详细版本)
linux·运维·服务器·开发语言·嵌入式软件
材料苦逼不会梦到计算机白富美2 小时前
多人聊天室 NIO模型实现
运维·服务器·nio
风行無痕2 小时前
Ubuntu 22.04 解决EasyExcel导出报错和读写问题 缺失字体
linux·运维·ubuntu