龙芯3B6000服务器Docker部署Jenkins全流程与避坑指南

在国产化替代浪潮中,龙芯平台的应用部署成为许多开发者和运维团队必须面对的课题。最近在龙芯3B6000服务器上搭建CI/CD环境时,发现关于Docker部署Jenkins的完整中文资料相对零散,特别是针对龙芯架构的适配和优化细节。本文将系统梳理在龙芯3B6000(LoongArch架构)上,从零开始使用Docker部署Jenkins的完整流程,涵盖环境准备、镜像拉取、容器配置、插件安装到项目构建的全链路实践,并提供一套可复现的避坑指南。

无论你是初次接触龙芯平台的开发者,还是需要在国产化环境中搭建自动化流水线的运维工程师,都能从本文中找到可直接操作的步骤和解决方案。我们将重点关注架构兼容性、网络配置、存储持久化等关键环节,确保部署的Jenkins实例稳定、高效。

1. 环境准备与系统配置

在龙芯3B6000上部署Docker和Jenkins,首先需要确保操作系统和基础环境就绪。龙芯3B6000采用LoongArch 64位架构,这与常见的x86_64或ARM64架构不同,因此在软件源和镜像选择上需要特别注意。

1.1 操作系统与内核要求

推荐使用适配LoongArch架构的Linux发行版,如Loongnix(龙芯社区版)、Anolis OS(龙蜥)或UOS(统信)等。本文以Anolis OS 23.4为例,其内核已包含对Docker所需特性的支持。

首先,检查系统架构和内核版本:

uname -m
# 预期输出:loongarch64

uname -r
# 查看内核版本,建议在5.10以上

确保系统已更新到最新状态:

sudo dnf update -y
# 或使用 apt-get update && apt-get upgrade -y (视发行版而定)

1.2 Docker安装与配置

由于龙芯架构的特殊性,不能直接使用Docker官方提供的安装脚本。我们需要通过系统包管理器或龙芯社区提供的软件源进行安装。

方法一:通过系统默认仓库安装(推荐) 在Anolis OS 23.4中,默认仓库已提供Docker软件包:

# 安装必要的依赖
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker仓库(如果默认仓库已有则跳过)
# sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 注意:官方仓库可能不包含loongarch64架构的包,需使用系统自带或龙芯社区源

# 安装Docker引擎
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
sudo docker version
sudo docker run hello-world

如果系统仓库中没有Docker,或版本较旧,可以参考以下方法。

方法二:使用龙芯社区提供的RPM仓库 根据网络资料提示,龙芯3B6000可通过RPM仓库安装较高版本的Docker(如29.5.1+)。具体步骤可能因社区源地址变化而调整,以下为通用流程:

# 1. 备份原有仓库配置
sudo cp /etc/yum.repos.d /etc/yum.repos.d.backup -r

# 2. 添加龙芯社区软件源(示例,实际地址请查询最新文档)
sudo tee /etc/yum.repos.d/loongson.repo <<-'EOF'
[loongson]
name=Loongson Software Repository
baseurl=http://mirrors.loongnix.cn/loongnix/
enabled=1
gpgcheck=0
# 如果源支持gpg验证,请配置gpgkey
EOF

# 3. 清理并重建缓存
sudo dnf clean all
sudo dnf makecache

# 4. 搜索可用的Docker版本
sudo dnf search docker-ce

# 5. 安装指定版本(如29.5.1)
sudo dnf install -y docker-ce-29.5.1 docker-ce-cli-29.5.1 containerd.io

安装完成后,配置Docker镜像加速器以提升拉取速度,特别是对于海外镜像:

# 创建或修改Docker守护进程配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

# 重启Docker使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证配置
sudo docker info | grep -A 5 "Registry Mirrors"

1.3 网络与防火墙设置

确保Docker容器能够正常访问外部网络,同时主机端口可被访问:

# 查看防火墙状态(如果使用firewalld)
sudo systemctl status firewalld

# 开放Jenkins默认端口8080和50000(用于代理通信)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=50000/tcp
sudo firewall-cmd --reload

# 如果使用iptables,则添加规则
# sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# sudo iptables -I INPUT -p tcp --dport 50000 -j ACCEPT

# 验证端口开放
sudo ss -tlnp | grep -E '8080|50000'

2. Jenkins Docker镜像选择与拉取

Jenkins官方提供了多架构的Docker镜像,但需要确认是否包含 linux/loongarch64 架构。截至撰写时,Jenkins官方镜像可能尚未直接支持LoongArch,因此我们需要采用兼容性方案。

2.1 镜像选择策略

对于龙芯平台,通常有以下几种选择:

  1. 使用社区移植的Jenkins镜像 :部分国内社区或厂商可能提供了适配LoongArch的Jenkins镜像。
  2. 使用Jenkins官方镜像的兼容层运行 :通过 --platform 参数尝试运行 linux/amd64 镜像,依赖系统兼容层(如binfmt_misc和qemu-user)进行转译,但性能有损耗且可能不稳定。
  3. 自行构建Jenkins镜像 :基于LoongArch的基础镜像,从源码或适配的包构建Jenkins。

考虑到稳定性和性能, 推荐优先寻找社区提供的LoongArch原生镜像 。如果找不到,再考虑兼容方案。

2.2 查找与拉取镜像

首先,在Docker Hub或其他镜像仓库搜索适配的镜像:

# 搜索包含loongarch64标签的Jenkins镜像
docker search jenkins --filter "is-official=false"
# 可以尝试搜索关键词如 'jenkins-loongarch64' 或 'jenkins-loongson'

# 如果找到,直接拉取
# docker pull <镜像名称>:<标签>

如果未找到原生镜像,可以尝试拉取官方镜像并使用平台模拟(仅适用于测试或开发环境):

# 安装qemu-user-static以支持多架构模拟(如果系统未预装)
sudo dnf install -y qemu-user-static

# 注册qemu解释器
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

# 尝试以amd64架构拉取并运行Jenkins LTS镜像
docker pull --platform linux/amd64 jenkins/jenkins:lts-jdk17

# 验证镜像架构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值