【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

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

相关推荐
weixin_3077791328 分钟前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse
bubiyoushang88830 分钟前
Windows11 WSL2 Ubuntu编译安装perf工具
linux·运维·ubuntu
xuanwojiuxin2 小时前
linux panic-propagation
linux·运维·服务器
藥瓿亭4 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
liuzhenghua665 小时前
Python任务调度模型
java·运维·python
黎相思5 小时前
应用层自定义协议与序列化
运维·服务器·网络
测试开发Kevin5 小时前
详解Jenkins Pipeline 中git 命令的使用方法
运维·jenkins
什么半岛铁盒5 小时前
Linux线程与进程关系及底层实现
java·linux·运维
langmeng1106 小时前
使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式
运维·redis·docker·容器·集群
jllllyuz6 小时前
如何为服务器生成TLS证书
运维·服务器·数据库