【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

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

相关推荐
测试开发Kevin1 小时前
详解Sonar与Jenkins 的集成使用!
jenkins·devops·持续集成·代码覆盖率
大霞上仙1 小时前
jenkins入门10--自动化构建
运维·自动化·jenkins
kevin_tech4 小时前
Go 项目开发实战-用户Token的刷新、踢人下线和防盗检测
运维·服务器·开发语言·后端·golang
0709004 小时前
Docker中安装Tailscale方法二
运维·docker·容器
vvw&5 小时前
如何在 Ubuntu 22.04 上安装 Caddy Web 服务器教程
linux·运维·服务器·前端·ubuntu·web·caddy
likeyou~coucou5 小时前
Linux中SSH服务(二)
linux·运维·ssh
A charmer6 小时前
Linux 进程入门:带你走进操作系统的核心地带(1)
linux·运维·服务器
金增辉6 小时前
Linux 虚拟机与windows主机之间的文件传输--设置共享文件夹方式
linux·运维·服务器
928-y8 小时前
CentOS离线安装gcc环境(附安装包+图文并茂)
linux·运维·centos
东华果汁哥8 小时前
【centos8 ES】Elasticsearch linux 龙晰8操作系统安装
linux·elasticsearch·jenkins