龙芯3B6000平台Docker部署Jenkins实战指南

📅 2026/7/10 1:12:40
龙芯3B6000平台Docker部署Jenkins实战指南
30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度在国产化技术栈的实践中龙芯平台因其自主指令集架构而备受关注。龙芯 3B6000 作为新一代高性能处理器其软件生态的适配与部署是开发者面临的实际挑战。将 Jenkins 这一广泛使用的持续集成与持续部署工具通过 Docker 容器化方式部署在龙芯平台上能够有效隔离环境、简化配置并提升部署的一致性和可移植性。本文旨在为需要在龙芯 3B6000 平台上搭建自动化构建环境的开发者提供一份从零开始、可复现的实战指南。我们将从 Docker 环境准备开始逐步完成 Jenkins 的拉取、配置、启动与基础使用并重点说明在龙芯架构下可能遇到的特殊问题及其解决方案。1. 理解龙芯平台与 Docker 部署的基础约束在龙芯 3B6000 上部署软件首要任务是理解其底层架构与通用 x86/ARM 平台的差异。这决定了我们获取软件资源的方式和可能遇到的兼容性问题。1.1 龙芯架构与软件生态龙芯 3B6000 处理器采用 LoongArch 指令集架构。这意味着绝大多数为 x86_64 或 ARM 架构预编译的二进制软件包无法直接运行。Docker 本身以及 Docker 镜像都需要针对 LoongArch 架构进行编译或提供对应版本。幸运的是随着生态发展主流开源社区和国内镜像源已逐步提供对 LoongArch 的支持。我们的核心思路是优先从支持 LoongArch 的软件源获取系统包并寻找或构建支持 LoongArch 的 Docker 基础镜像。1.2 Docker 在龙芯平台上的工作模式Docker 通过利用操作系统的内核功能来实现容器化。由于龙芯 3B6000 运行的是 Linux 内核只要 Docker 引擎的二进制文件被编译为 LoongArch 版本它就能正常工作。容器内的用户空间如文件系统、库、应用程序则需要由镜像提供。因此一个jenkins/jenkins:lts官方镜像如果只提供了amd64和arm64的版本就无法直接在龙芯上运行。我们必须寻找或制作一个基于 LoongArch 的 Jenkins 镜像。目前常见的途径包括使用社区移植的镜像一些国内社区或厂商会维护常用软件的 LoongArch 版本镜像。自行构建镜像以 LoongArch 的基础镜像如cr.loongnix.cn/loongnix/loongnix:latest为起点通过 Dockerfile 安装 Jenkins 及其依赖。本文将采用第一种相对简便的方式演示如何从可信的镜像仓库拉取并运行 Jenkins。2. 龙芯 3B6000 系统环境准备与 Docker 安装在部署 Jenkins 之前必须确保宿主机龙芯 3B6000 服务器的操作系统环境就绪并且 Docker 引擎已正确安装并运行。2.1 操作系统与基础配置假设我们使用的是基于 LoongArch 的 Linux 发行版例如 Loongnix龙蜥社区版或 UOS 等。首先进行系统更新和基础工具安装。# 更新系统软件包列表确保使用支持LoongArch的源 sudo apt update sudo apt upgrade -y # 如果使用apt # 或 sudo dnf update -y # 如果使用dnf # 安装常用工具和依赖 sudo apt install -y curl wget vim net-tools ca-certificates software-properties-common接下来需要配置系统的软件源确保能访问到 Docker 的 LoongArch 版本。通常发行版会提供配置好的源如果需要手动添加请参考对应发行版的文档。一个关键的步骤是确认系统架构uname -m预期输出应为loongarch64这确认了系统运行在目标架构上。2.2 安装 Docker 引擎Docker 官方并未直接提供 LoongArch 的二进制包但可以通过系统包管理器从支持 LoongArch 的镜像源安装。以下以apt包管理器为例。卸载旧版本如有sudo apt remove docker docker-engine docker.io containerd runc安装依赖包sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release添加 Docker 的 GPG 密钥和软件源。这里需要使用为 LoongArch 适配的源。例如可以使用国内镜像站提供的源具体地址请以当前可用的为准以下为示例# 添加GPG密钥示例实际密钥需从可靠来源获取 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/loongarch/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加软件源示例 echo \ deb [archloongarch64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/loongarch \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null注意上述镜像地址和密钥仅为示例。实际操作前请务必查询你的 Linux 发行版和龙芯社区提供的最新、最稳定的 Docker 源配置方法。错误的源会导致安装失败。安装 Docker 引擎sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin启动 Docker 并设置开机自启sudo systemctl start docker sudo systemctl enable docker验证 Docker 安装sudo docker run hello-world如果安装成功Docker 会尝试拉取一个hello-world镜像并运行。但由于官方可能没有 LoongArch 版本的hello-world此命令可能会报架构不匹配的错误。这恰好说明了架构适配的重要性。我们可以换一个已知支持 LoongArch 的镜像进行测试例如sudo docker run --rm cr.loongnix.cn/loongnix/busybox:latest echo Hello, LoongArch Docker!如果看到Hello, LoongArch Docker!的输出则证明 Docker 引擎在龙芯平台上已正常工作。可选将当前用户加入 docker 组避免每次使用docker命令都需要sudosudo usermod -aG docker $USER执行此命令后需要注销并重新登录当前用户或开启一个新的 shell 会话才能使组权限生效。3. 获取并运行 LoongArch 架构的 Jenkins 镜像由于 Jenkins 官方镜像暂未提供 LoongArch 版本我们需要从其他渠道获取。国内一些开源镜像站或社区会维护常用软件的 LoongArch 移植版本。3.1 寻找与拉取 Jenkins 镜像一个可靠的来源是龙芯开源镜像站 (cr.loongnix.cn)。我们可以在这里搜索或直接拉取 Jenkins 镜像。搜索镜像如果不知道确切名称# 注意镜像站可能不直接提供搜索API通常需要访问网页查看 # 假设我们已知镜像名为 jenkins/jenkins:lts-loongarch64拉取镜像。这里以一个假设的社区维护镜像为例实际操作时请替换为真实可用的镜像名sudo docker pull cr.loongnix.cn/jenkins/jenkins:lts-loongarch64如果找不到确切的jenkins/jenkins镜像可能需要拉取一个通用的 LoongArch 基础镜像如cr.loongnix.cn/loongnix/loongnix:latest然后通过 Dockerfile 自行构建。但为了简化教程我们假设存在一个可直接使用的镜像cr.loongnix.cn/loongnix/jenkins:2.4xx版本号需查询确认。重要在拉取前务必通过docker search如果镜像站支持或访问镜像站网页确认镜像的存在性和版本。拉取过程会下载镜像的所有分层耗时取决于网络速度。查看已拉取的镜像sudo docker images | grep jenkins确认镜像已存在并记下其REPOSITORY和TAG。3.2 创建持久化数据卷Jenkins 在运行过程中会产生大量数据包括任务配置、构建历史、插件等。为了在容器重启或更新后不丢失这些数据必须使用 Docker 数据卷或绑定挂载将其持久化到宿主机。创建用于存储 Jenkins 数据的目录sudo mkdir -p /var/jenkins_home # 为了便于容器内进程写入需要调整目录权限方式一更改属主 sudo chown -R 1000:1000 /var/jenkins_home # Jenkins 容器内默认以 uid 1000 的用户运行或者更安全的方式是使用 Docker 管理的命名卷让 Docker 处理权限和路径sudo docker volume create jenkins-data两种方式的对比与选择方式优点缺点适用场景绑定挂载(-v /host/path:/container/path)宿主机路径直观便于直接备份、查看日志。需要手动管理宿主机目录权限可能引发权限问题。开发、测试环境需要频繁访问容器内文件时。命名卷(-v volume_name:/container/path)Docker 自动管理权限隔离好备份迁移相对方便。数据存储在 Docker 管理区域路径不直观。生产环境追求稳定和隔离性。本文后续示例将使用命名卷jenkins-data因其更符合生产部署的最佳实践。3.3 首次运行 Jenkins 容器现在使用拉取的镜像和创建的数据卷来启动 Jenkins 容器。sudo docker run -d \ --name jenkins \ --restartunless-stopped \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ cr.loongnix.cn/loongnix/jenkins:2.4xx参数详解-d后台运行容器。--name jenkins为容器指定一个名称便于管理。--restartunless-stopped设置容器自动重启策略除非手动停止否则因故障退出后会自动重启。-p 8080:8080将宿主机的 8080 端口映射到容器的 8080 端口Jenkins Web 界面。-p 50000:50000将宿主机的 50000 端口映射到容器的 50000 端口Jenkins Agent 通信端口。-v jenkins-data:/var/jenkins_home将之前创建的jenkins-data命名卷挂载到容器内的 Jenkins 工作目录。-v /var/run/docker.sock:/var/run/docker.sock这是一个可选但强大的挂载。它将宿主机的 Docker 守护进程套接字挂载到容器内使得 Jenkins 容器内的任务可以直接调用宿主机的 Docker 引擎例如在 Pipeline 中构建 Docker 镜像。注意这会带来一定的安全风险因为它赋予了 Jenkins 容器很高的权限请仅在受信任的环境中使用。cr.loongnix.cn/loongnix/jenkins:2.4xx替换为你实际拉取到的 Jenkins 镜像名和标签。3.4 验证容器运行状态执行以下命令检查容器是否正常运行sudo docker ps | grep jenkins应该能看到名为jenkins的容器处于Up状态。查看容器启动日志确认 Jenkins 初始化过程无致命错误sudo docker logs -f jenkins使用-f参数可以实时查看日志输出。初始化时Jenkins 会解压插件、创建初始配置等。当你看到类似Jenkins is fully up and running的信息时说明启动成功。首次启动可能需要几分钟。可以按CtrlC退出日志跟随模式。4. 初始化 Jenkins 并完成基础配置容器启动后即可通过 Web 界面进行 Jenkins 的初始化设置。4.1 获取初始管理员密码首次访问 Jenkins Web 界面需要输入一个初始管理员密码。该密码由 Jenkins 在启动时生成并输出到日志和容器内的特定文件中。从容器日志中获取最简单sudo docker logs jenkins 21 | grep -A 2 -B 2 initialAdminPassword命令会输出包含密码的行通常是一长串随机字符。从容器内文件获取sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword复制输出的密码字符串。4.2 访问 Web 界面并解锁打开浏览器访问http://你的龙芯服务器IP地址:8080。你将看到 “Unlock Jenkins” 页面。将上一步复制的初始管理员密码粘贴到输入框中点击 “Continue”。4.3 安装推荐插件解锁后Jenkins 会提示你安装插件。对于新手建议选择“Install suggested plugins”。Jenkins 将开始自动下载并安装一系列常用插件如 Git、Pipeline、邮件通知等。注意在龙芯架构下插件安装过程可能会因为部分插件没有预编译的 LoongArch 版本而失败或回退到兼容模式。Jenkins 插件大多由 Java 编写具有平台无关性但其中包含原生库Native Library的插件例如某些通过 JNI 调用本地代码的插件可能无法正常工作。如果遇到插件安装失败可以稍后在插件管理中跳过或寻找替代插件。4.4 创建第一个管理员用户插件安装完成后会进入创建管理员用户页面。强烈建议在此创建自己的管理员账户而不是继续使用初始的随机密码。填写用户名、密码、全名和邮箱地址然后点击 “Save and Continue”。4.5 配置实例 URL下一步是配置 Jenkins 的根 URL。默认会显示当前访问的地址如http://IP:8080/。如果后续需要通过域名访问或端口有变化可以在此修改。保持默认直接点击 “Save and Finish”然后点击 “Start using Jenkins”。至此Jenkins 的基本安装和初始化配置完成。5. 配置 Jenkins 以适应龙芯开发环境初始化完成后为了能在龙芯平台上有效工作还需要进行一些针对性配置。5.1 配置工具自动安装JDK, Maven, Gradle许多构建工具需要与架构匹配的版本。Jenkins 可以自动安装这些工具。进入 Jenkins 管理后台Manage Jenkins-Tools。找到JDK配置。如果 Jenkins 镜像内已包含 LoongArch 版本的 JDK可以添加一个取名为LoongArch JDK的安装选择 “Install automatically”但需要指定一个有效的下载链接。更常见的做法是直接使用容器内已安装的 JDK。可以添加一个 “JDK” 安装取消勾选 “Install automatically”在JAVA_HOME字段填写容器内的路径如/usr/local/openjdk-11具体路径需进入容器查看echo $JAVA_HOME确认。对于Maven和Gradle情况类似。优先使用系统包管理器在构建 Jenkins 镜像时已安装的版本并在 Jenkins 工具配置中指向正确路径。如果镜像内没有则需要找到 LoongArch 版本的二进制包通过 “Install automatically” 配置一个能从网络下载的安装器。通常从 Apache 或 Gradle 官网下载平台无关的.zip或.tar.gz包内含.jar文件是可以的因为它们由 Java 运行。5.2 配置 Docker 内部调用如果挂载了 Docker Socket如果你在运行容器时挂载了/var/run/docker.sock那么需要在 Jenkins 中配置 Docker 构建环境。进入Manage Jenkins-Configure System。找到 “Cloud” 区域可能需要安装 “Docker” 插件后才显示。添加一个 “Docker” 云。Docker Host URI 通常填写unix:///var/run/docker.sock。测试连接如果成功说明 Jenkins 可以调用宿主机的 Docker 来动态创建构建代理Agent或在 Pipeline 中执行docker命令。5.3 创建并测试一个简单的 Pipeline 任务为了验证 Jenkins 在龙芯平台上的基本构建功能我们创建一个最简单的 Pipeline 任务。点击 Jenkins 首页的 “New Item”。输入任务名称例如test-loongarch-pipeline选择 “Pipeline”点击 “OK”。在配置页面中向下滚动到 “Pipeline” 部分。在 “Definition” 处选择 “Pipeline script”。在脚本输入框中输入以下内容pipeline { agent any stages { stage(Hello) { steps { sh uname -m sh java -version echo Hello from LoongArch Jenkins! } } } }这个脚本会执行两个 shell 命令显示系统架构和 Java 版本然后输出一个问候语。点击 “Save”。在任务页面点击左侧的 “Build Now” 立即构建。点击构建历史中的编号如 #1再点击 “Console Output” 查看构建日志。在日志中你应该能看到类似以下的输出[test-loongarch-pipeline] Running shell script uname -m loongarch64 [test-loongarch-pipeline] Running shell script java -version openjdk version 11.0.xx 202x-xx-xx ... [Pipeline] echo Hello from LoongArch Jenkins!这证明了 Jenkins 可以成功在龙芯容器内调度并执行构建步骤。6. 常见问题排查与优化实践在龙芯架构下部署和运行 Jenkins可能会遇到一些特有或常见的问题。6.1 镜像拉取失败或架构不匹配问题现象可能原因检查与解决方式no matching manifest for linux/loongarch64 in the manifest list entries镜像仓库中没有 LoongArch 架构的镜像。1. 确认镜像名和标签是否正确。2. 使用docker manifest inspect image-name需开启实验性功能查看镜像支持的架构。3. 转向支持 LoongArch 的镜像源或考虑自行构建。Error response from daemon: pull access denied镜像需要认证或镜像不存在于该仓库。1. 执行docker login登录对应镜像仓库。2. 确认镜像的完整路径包括仓库地址、命名空间、镜像名、标签。6.2 容器启动后无法访问 Web 界面问题现象可能原因检查与解决方式浏览器连接被拒绝1. Jenkins 容器未成功启动。2. 宿主机防火墙阻止了 8080 端口。3. 端口映射错误。1.docker ps检查容器状态docker logs jenkins查看错误日志。2. 检查宿主机防火墙规则sudo ufw status(Ubuntu) 或sudo firewall-cmd --list-all(CentOS)。临时开放端口sudo ufw allow 8080/tcp。3. 确认docker run时-p参数是否正确宿主机端口是否被占用sudo netstat -tlnp页面显示 “This site can’t be reached”网络问题或 Jenkins 初始化未完成。1. 确认服务器 IP 地址是否正确。2. 从服务器本地用curl http://localhost:8080测试如果通则是客户端网络问题。3. 查看容器日志等待 Jenkins 完全启动出现Jenkins is fully up and running。6.3 插件安装失败或兼容性问题问题现象可能原因检查与解决方式插件安装进度条卡住或报错1. 网络问题无法连接到 Jenkins 更新中心。2. 插件依赖的某个库没有 LoongArch 版本。1. 在Manage Jenkins-Plugin Manager-Advanced中将 “Update Site” 替换为国内镜像例如清华源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。2. 对于安装失败的特定插件查看详细错误日志。如果错误与原生库有关考虑寻找替代插件或在不影响核心功能的情况下跳过安装。插件安装后功能异常插件中的原生代码组件未针对 LoongArch 编译。1. 检查插件官方文档或 Issue 列表看是否支持多架构。2. 在 Jenkins 日志中搜索该插件相关的WARNING或ERROR。3. 回退到该插件的纯 Java 实现的老版本如果存在。6.4 性能优化与生产建议镜像源加速在龙芯服务器上配置 Docker 镜像加速器以提升拉取镜像的速度。编辑/etc/docker/daemon.json文件若不存在则创建{ registry-mirrors: [ https://your-mirror.mirror.loongnix.cn, https://docker.mirrors.ustc.edu.cn ] }修改后重启 Dockersudo systemctl restart docker。具体的加速器地址需查询当前可用的龙芯架构镜像站。资源限制为 Jenkins 容器设置合理的资源限制避免其占用过多宿主机资源。sudo docker update jenkins --memory2g --memory-swap4g --cpus1.5定期备份定期备份 Jenkins 数据卷是关键的生产保障。# 备份命名卷 sudo docker run --rm -v jenkins-data:/data -v $(pwd):/backup busybox tar czf /backup/jenkins-backup-$(date %Y%m%d).tar.gz -C /data .安全加固避免使用 root 用户确保 Jenkins 容器以非 root 用户运行社区镜像通常已处理。谨慎挂载 Docker Socket仅在确实需要 Jenkins 控制 Docker 守护进程时挂载并评估安全风险。可以考虑使用 Docker-in-Docker (DinD) 或远程 Docker API 配合 TLS 认证等更安全的方式。更新与漏洞管理关注 Jenkins 及其插件的安全公告定期更新到稳定版本。通过以上步骤你可以在龙芯 3B6000 平台上成功搭建一个功能完整的 Jenkins 自动化服务器。整个过程的核心在于理解架构差异并据此选择正确的软件源和镜像。在后续使用中结合龙芯平台的特性逐步配置构建节点、流水线以及集成其他国产化工具链可以构建起完全自主可控的持续集成与交付环境。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度