30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度这次我们来看一个在国产龙芯 3B6000 平台上使用 Docker 部署 Jenkins 的实战方案。对于使用龙芯架构的开发者或运维人员来说如何在非 x86 的生态下搭建一套稳定、高效的 CI/CD 流水线是一个很实际的需求。Docker 容器化部署 Jenkins 不仅能简化环境配置还能提供更好的隔离性和可移植性。本文将带你从零开始完成在龙芯 3B6000 服务器上安装 Docker、拉取适配镜像、部署 Jenkins 服务并进行基础配置和功能验证的全过程。核心关注点在于龙芯平台下的 Docker 安装是否有特殊要求是否有现成的 Jenkins 镜像可用部署后的性能表现和常见问题如何如果你手头有龙芯设备或者正在评估国产化平台的 CI/CD 方案这篇文章可以直接作为操作手册。1. 核心能力速览在开始具体操作前我们先快速了解这个方案的核心信息。能力项说明目标平台龙芯 3B6000 处理器LoongArch 架构核心组件Docker 容器引擎 Jenkins CI/CD 服务部署方式通过 Docker 容器化部署实现环境隔离与快速启动主要功能提供完整的 Jenkins Web 管理界面支持任务创建、代码拉取、构建、测试、部署等自动化流水线环境依赖龙芯 3B6000 服务器、支持 LoongArch 的 Linux 发行版如 Loongnix、UOS、麒麟网络要求服务器需能访问外部网络以下载 Docker 安装包和容器镜像适合场景在国产化龙芯平台上搭建自动化构建、测试与部署环境适用于软件开发、运维、测试团队2. 适用场景与使用边界这个方案主要解决在龙芯架构上快速搭建标准化 CI/CD 环境的问题。适合谁用龙芯平台开发者需要在本地或开发服务器上搭建构建环境。国产化项目运维负责在龙芯服务器上部署和维护持续集成流水线。技术评估人员评估龙芯生态下 Docker 和主流开源工具链的可用性与成熟度。能解决什么问题环境标准化通过 Docker 容器避免直接在宿主机上安装复杂的 Jenkins 及其 Java 依赖保证环境一致性。快速部署与迁移一个docker run命令即可启动 Jenkins方便在不同龙芯机器间迁移。资源隔离Jenkins 及其构建任务在容器内运行与宿主机环境隔离更安全。利用社区镜像如有如果存在适配 LoongArch 的 Jenkins 镜像可以省去复杂的交叉编译和适配工作。不适合什么场景超大规模集群对于需要管理成千上万节点的 Jenkins 集群单机 Docker 部署可能只是起点需要更复杂的架构。对性能有极致要求容器化会有轻微的性能开销如果对构建速度有毫秒级极致要求需评估。无法访问外网的环境需要提前在有网环境下载好 Docker 安装包和 Jenkins 镜像再离线导入。安全与合规边界权限控制Jenkins 拥有执行 shell 命令的能力务必妥善管理管理员账号和项目权限。网络安全默认 Jenkins 会开启 Web 端口如 8080确保防火墙策略正确避免暴露在公网。数据持久化务必做好 Jenkins 工作目录/var/jenkins_home的卷挂载防止容器重启后数据丢失。3. 环境准备与前置条件开始部署前请确保你的龙芯 3B6000 服务器满足以下条件。1. 硬件与操作系统CPU: 龙芯 3B6000。操作系统: 一个支持 LoongArch 架构的 Linux 发行版。常见的有Loongnix Server统信 UOS Server麒麟软件服务器操作系统建议配置: 至少 4GB 内存20GB 可用磁盘空间。运行 Jenkins 和多个构建任务时内存需求会增长。2. 网络连接服务器需要能够访问互联网用于下载 Docker 安装包和后续拉取镜像。可以通过ping www.baidu.com测试网络连通性。3. 系统更新在安装任何新软件前建议先更新系统包管理器并升级现有软件包以确保系统处于最新状态。# 以 Loongnix 或基于 Debian/Ubuntu 的衍生版为例使用 apt sudo apt update sudo apt upgrade -y # 如果是基于 CentOS/RHEL 的发行版使用 yum 或 dnf # sudo yum update -y4. 检查现有 Docker检查系统是否已经安装了旧版本的 Docker避免冲突。docker --version如果已安装但版本较低或不是官方版本可以考虑先卸载。卸载命令取决于系统的包管理器。4. 安装 Docker 引擎在龙芯架构上安装 Docker通常不能直接使用apt install docker.io或yum install docker因为官方仓库可能没有提供 LoongArch 的二进制包。我们需要从龙芯社区或发行版提供的仓库进行安装。步骤 1 卸载旧版本可选如果之前安装过先进行清理。sudo apt remove docker docker-engine docker.io containerd runc -y sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd步骤 2 安装依赖工具安装ca-certificates、curl、gnupg、lsb-release等工具。sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release步骤 3 添加 Docker 官方 GPG 密钥可选主要针对 x86/arm64对于龙芯此步骤可能不适用但添加也无妨。如果网络不通可跳过。sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg步骤 4 添加适用于龙芯的 Docker 仓库这是关键步骤。你需要根据你使用的具体龙芯发行版添加正确的软件源。情况A 发行版已提供 Docker 包很多国产发行版已经集成了适配的 Docker。首先检查你的/etc/apt/sources.list或/etc/yum.repos.d/下的源文件。例如在 Loongnix 中可能已经配置了包含 Docker 的源。情况B 手动添加龙芯社区源可以参考龙芯开源社区或你的操作系统厂商提供的文档。例如可能需要添加像http://pkg.loongnix.cn/loongnix这样的源。请以你所用系统的官方文档为准。# 以下是一个示例切勿直接使用请替换为你的实际源地址 # echo deb [archloongarch64] http://your-loongarch-mirror/loongnix stable main | sudo tee /etc/apt/sources.list.d/loongnix.list步骤 5 安装 Docker Engine添加正确的源后更新包列表并安装 Docker。sudo apt update # 搜索可用的 docker 包确认名称 # apt search docker-ce | grep docker sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin根据网络搜索材料中提到的“龙芯3B6000 安装高版本rpm Docker 29.5.1”在某些使用 RPM 包管理器的系统如基于 CentOS 的龙芯系统上你可能需要安装docker的 RPM 包命令可能是sudo yum install docker或sudo dnf install docker。步骤 6 启动 Docker 并设置开机自启sudo systemctl start docker sudo systemctl enable docker步骤 7 验证 Docker 安装运行一个测试镜像验证 Docker 是否安装成功并能正常运行容器。sudo docker run hello-world如果看到 “Hello from Docker!” 等欢迎信息说明 Docker 引擎安装成功。如果找不到hello-world的 LoongArch 镜像可以尝试拉取一个更小的、支持多架构的镜像进行测试如busybox。sudo docker run --rm busybox echo “Docker on LoongArch is working!”步骤 8 可选将当前用户加入 docker 组为了避免每次运行docker命令都需要sudo可以将你的用户加入docker组。sudo usermod -aG docker $USER重要执行此命令后你需要完全退出当前终端会话并重新登录或者新开一个终端用户组更改才会生效。5. 获取与运行 Jenkins 镜像Docker 安装成功后下一步就是获取并运行 Jenkins 镜像。一个挑战是Docker Hub 上的官方jenkins/jenkins镜像主要支持amd64和arm64架构可能没有直接提供loongarch64的版本。方案一使用已移植的镜像如果存在优先搜索龙芯社区或国内镜像仓库是否有移植好的 Jenkins 镜像。搜索镜像# 可以在 Docker Hub 或阿里云、华为云等国内镜像仓库搜索 # 例如使用 docker search但结果可能有限 docker search jenkins --filter “is-officialtrue”拉取镜像如果找到了如loongnix/jenkins或registry.cn-loongarch64.loongnix.cn/jenkins这样的镜像直接拉取。docker pull loongnix/jenkins:lts方案二使用通用 Java 镜像自行构建如果找不到现成的镜像可以基于一个支持 LoongArch 的 Java 运行时镜像如openjdk:11-jdk或eclipse-temurin:11-jdk的loongarch64版本通过 Dockerfile 自行安装 Jenkins。创建 Dockerfile# 使用一个已知支持loongarch64的基础镜像例如龙芯提供的OpenJDK镜像 FROM cr.loongnix.cn/library/openjdk:11 # 设置 Jenkins 版本和环境变量 ARG JENKINS_VERSION2.440.1 ENV JENKINS_HOME /var/jenkins_home ENV JENKINS_SLAVE_AGENT_PORT 50000 # 安装 Jenkins RUN apt update apt install -y wget \ wget https://get.jenkins.io/war-stable/${JENKINS_VERSION}/jenkins.war -O /usr/share/jenkins/jenkins.war \ apt purge -y wget apt autoremove -y rm -rf /var/lib/apt/lists/* # 创建 Jenkins 用户和目录 RUN useradd -d “$JENKINS_HOME” -u 1000 -m -s /bin/bash jenkins RUN mkdir -p /usr/share/jenkins/ref # 暴露端口 EXPOSE 8080 EXPOSE 50000 # 设置卷和用户 VOLUME $JENKINS_HOME USER jenkins # 启动命令 ENTRYPOINT [“java”, “-jar”, “/usr/share/jenkins/jenkins.war”]注意上述 Dockerfile 仅为示例。你需要确认cr.loongnix.cn/library/openjdk:11镜像是否存在且可用并选择合适的 Jenkins 版本。构建镜像docker build -t my-loongarch-jenkins:latest .方案三直接运行 Jenkins WAR 包最简单直接的方式是在宿主机下载 Jenkins 的通用 WAR 包然后在支持 LoongArch 的 Java 容器中运行它。下载 Jenkins WAR 包wget https://get.jenkins.io/war-stable/latest/jenkins.war使用 Docker 运行# 创建一个用于持久化数据的目录 mkdir -p ~/jenkins_home # 运行容器将 WAR 包和持久化目录挂载进去 docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v ~/jenkins_home:/var/jenkins_home \ -v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war这个命令做了几件事-d: 后台运行容器。--name jenkins: 给容器命名。-p 8080:8080: 将容器的 8080 端口Jenkins Web 界面映射到宿主机的 8080 端口。-p 50000:50000: 映射代理端口用于 Jenkins 节点通信。-v ~/jenkins_home:/var/jenkins_home:至关重要。将宿主机的~/jenkins_home目录挂载到容器的 Jenkins 工作目录实现数据持久化。-v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war: 将下载的 WAR 包挂载到容器内。最后指定基础镜像和启动命令。6. 初始化配置与访问 Jenkins无论采用哪种方案运行了 Jenkins 容器接下来的配置步骤是通用的。步骤 1 检查容器状态docker ps你应该能看到一个名为jenkins或你指定的名字的容器正在运行并且端口映射正确。步骤 2 获取初始管理员密码Jenkins 第一次启动时会生成一个随机的初始管理员密码保存在容器内的/var/jenkins_home/secrets/initialAdminPassword。由于我们做了目录挂载这个文件实际上在宿主机的~/jenkins_home/secrets/目录下。cat ~/jenkins_home/secrets/initialAdminPassword复制输出的那一长串密码。步骤 3 访问 Jenkins Web 界面打开你的浏览器访问http://你的龙芯服务器IP地址:8080。你会看到 “Unlock Jenkins” 页面将上一步复制的密码粘贴进去点击 “Continue”。接下来是 “Customize Jenkins” 页面建议选择 “Install suggested plugins” 来安装推荐插件。这个过程可能需要几分钟取决于网络速度。插件安装完成后会提示你创建第一个管理员用户。建议在此创建一个新的管理员账号并记住密码。最后配置 Jenkins 实例的 URL默认是http://你的服务器IP:8080确认即可。步骤 4 完成安装并登录完成上述步骤后你就进入了 Jenkins 的主仪表板。至此Jenkins 已经成功部署在龙芯 3B6000 的 Docker 容器中。7. 基础功能测试与验证部署完成后我们需要验证 Jenkins 的基本功能是否正常。测试 1 创建第一个自由风格任务在 Jenkins 首页点击 “新建 Item”。输入任务名称例如 “Test-LoongArch-HelloWorld”选择 “Freestyle project”点击 “OK”。在配置页面向下滚动到 “Build Steps” 部分。点击 “Add build step”选择 “Execute shell”。在命令框中输入简单的测试命令echo “Hello from LoongArch 3B6000!” uname -a docker version点击 “Save”。回到任务页面点击 “Build Now” 立即构建。构建开始后点击构建历史中的编号如 #1然后点击 “Console Output” 查看实时日志。验证在控制台输出中你应该能看到打印的 “Hello…” 信息以及uname -a输出的系统信息应包含loongarch64还有docker version输出的 Docker 版本信息。这表明 Jenkins 可以在容器内成功执行 Shell 命令并能访问宿主机 Docker。测试 2 验证 Docker 集成Docker in Docker很多 CI/CD 流水线需要 Docker 来构建镜像。我们需要测试 Jenkins 容器内的 Docker 客户端能否与宿主机 Docker 守护进程通信。修改上面的测试任务或者新建一个任务。在构建步骤的 Shell 命令中尝试运行一个简单的 Docker 命令docker run --rm busybox echo “Docker command executed inside Jenkins container on LoongArch.”运行这个任务。可能遇到的问题与解决权限错误如果提示 “Got permission denied while trying to connect to the Docker daemon socket…”这是因为 Jenkins 容器内的用户没有权限访问宿主机的 Docker socket。解决方案在启动 Jenkins 容器时将宿主机的 Docker socket 挂载到容器内并确保容器内用户有权限通常通过使用 root 用户或调整组权限。更安全的做法是使用 Docker DinDDocker in Docker或使用专门的 Docker 构建代理。一个简单的测试启动命令修改如下注意安全风险docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v ~/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ # 挂载 Docker socket -v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war重新运行容器并执行测试任务应该能成功执行 Docker 命令。8. 配置优化与最佳实践基础功能跑通后可以进行一些优化配置让 Jenkins 更实用、更安全。1. 数据持久化与备份我们已经通过-v ~/jenkins_home:/var/jenkins_home实现了数据持久化。此外你应该定期备份~/jenkins_home目录。考虑使用 Docker 卷docker volume create jenkins-data来管理数据而不是直接绑定宿主机目录以获得更好的可移植性。2. 时区设置容器内默认可能是 UTC 时间。可以通过环境变量调整容器时区使日志时间与本地时间一致。# 在 docker run 命令中添加环境变量 -e TZAsia/Shanghai完整的运行命令示例docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ # 使用命名卷 -v /var/run/docker.sock:/var/run/docker.sock \ -e TZAsia/Shanghai \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war3. 资源限制为防止 Jenkins 容器占用过多宿主资源可以设置 CPU 和内存限制。# 在 docker run 命令中添加资源限制 --memory2g \ # 限制内存为 2GB --cpus“1.5” # 限制使用 1.5 个 CPU 核心4. 使用 Docker Compose 管理使用docker-compose.yml文件可以更方便地定义和管理服务。创建一个docker-compose.yml文件version: ‘3.8’ services: jenkins: image: cr.loongnix.cn/library/openjdk:11 # 或你构建的镜像名 container_name: jenkins restart: unless-stopped ports: - “8080:8080” - “50000:50000” volumes: - jenkins-data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - ./jenkins.war:/usr/share/jenkins/jenkins.war environment: - TZAsia/Shanghai command: java -jar /usr/share/jenkins/jenkins.war # 资源限制 # deploy: # resources: # limits: # cpus: ‘1.5’ # memory: 2G volumes: jenkins-data:然后使用docker-compose up -d启动服务。5. 插件安装根据你的项目需求安装必要的 Jenkins 插件例如Git Plugin 用于从 Git 仓库拉取代码。Pipeline 用于定义流水线即代码Jenkinsfile。Docker Pipeline 在流水线中集成 Docker。Blue Ocean 提供更现代的 UI 体验。 可以在 Jenkins 的 “Manage Jenkins” - “Plugins” 中搜索安装。9. 常见问题与排查方法在龙芯平台上部署可能会遇到一些特殊问题。问题现象可能原因排查方式解决方案docker run失败提示no matching manifestDocker Hub 上没有对应loongarch64架构的镜像。docker pull时观察错误信息。1. 寻找龙芯社区移植的镜像。2. 使用支持loongarch64的基础镜像如龙芯提供的 OpenJDK自行构建。Jenkins 启动后 Web 页面无法访问1. 防火墙未开放端口。2. 容器启动失败。3. 端口被占用。1.docker ps查看容器状态。2.docker logs jenkins查看容器日志。3.netstat -tlnp | grep 8080检查端口占用。1. 开放防火墙端口sudo ufw allow 8080。2. 根据日志解决启动错误如 Java 版本、权限问题。3. 更换映射端口-p 8081:8080。控制台输出中文乱码容器内缺少中文字符集。在容器内执行locale查看。在 Dockerfile 中安装中文字体包或设置环境变量LANGC.UTF-8。插件安装极其缓慢或失败默认插件中心网络连接不畅。观察插件管理页面的下载进度和错误信息。更换为国内镜像源在 “Manage Jenkins” - “Plugin Manager” - “Advanced” 中将 “Update Site” 替换为国内镜像 URL例如清华源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。构建任务中无法执行 Docker 命令Jenkins 容器内没有 Docker 客户端或无法连接到宿主机 Docker 守护进程。在任务 Shell 中执行which docker和docker info。1. 确保启动容器时挂载了 Docker socket (-v /var/run/docker.sock:/var/run/docker.sock)。2. 考虑使用 Jenkins 的 Docker 代理或 Kubernetes 插件来运行构建环境。日志时间与本地时间不符容器时区未设置默认为 UTC。查看 Jenkins 系统日志的时间戳。启动容器时添加环境变量-e TZAsia/Shanghai。initialAdminPassword文件为空或找不到1. 目录挂载权限问题。2. Jenkins 首次启动未完成。1. 检查~/jenkins_home/secrets/目录权限。2. 查看容器日志docker logs jenkins。1. 确保挂载目录对容器内 Jenkins 用户UID 1000可写。2. 等待 Jenkins 完全启动或删除~/jenkins_home目录重新启动容器会丢失数据。10. 总结与下一步在龙芯 3B6000 上通过 Docker 部署 Jenkins核心挑战在于软件生态的适配。成功的关键在于找到或构建一个能在loongarch64架构上运行的 Java 环境并以此为基础运行 Jenkins 的通用 WAR 包。本文提供的“方案三直接运行 WAR 包”是目前最直接、最可能成功的方法。部署完成后你获得了一个在国产化平台上可用的自动化引擎。接下来可以配置项目将你的 Java、Python、Go 或前端项目配置到 Jenkins 上实现代码提交后自动构建。探索流水线尝试使用 Jenkins PipelineJenkinsfile来定义更复杂、可版本化的构建流程。集成国产组件探索如何与国产 Git 服务如 Gitee、国产制品库等集成。性能监控观察在龙芯平台上的构建性能与 x86 平台进行对比评估是否满足项目需求。这个方案证明了在龙芯架构上运行主流开源 DevOps 工具是可行的为国产化技术栈的持续集成与交付提供了实践参考。如果在部署中遇到其他龙芯特有的问题多关注龙芯开源社区和所用操作系统的官方文档通常能找到解决方案。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度
龙芯3B6000平台Docker部署Jenkins实战:国产化CI/CD环境搭建指南
发布时间:2026/7/6 22:26:07
30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度这次我们来看一个在国产龙芯 3B6000 平台上使用 Docker 部署 Jenkins 的实战方案。对于使用龙芯架构的开发者或运维人员来说如何在非 x86 的生态下搭建一套稳定、高效的 CI/CD 流水线是一个很实际的需求。Docker 容器化部署 Jenkins 不仅能简化环境配置还能提供更好的隔离性和可移植性。本文将带你从零开始完成在龙芯 3B6000 服务器上安装 Docker、拉取适配镜像、部署 Jenkins 服务并进行基础配置和功能验证的全过程。核心关注点在于龙芯平台下的 Docker 安装是否有特殊要求是否有现成的 Jenkins 镜像可用部署后的性能表现和常见问题如何如果你手头有龙芯设备或者正在评估国产化平台的 CI/CD 方案这篇文章可以直接作为操作手册。1. 核心能力速览在开始具体操作前我们先快速了解这个方案的核心信息。能力项说明目标平台龙芯 3B6000 处理器LoongArch 架构核心组件Docker 容器引擎 Jenkins CI/CD 服务部署方式通过 Docker 容器化部署实现环境隔离与快速启动主要功能提供完整的 Jenkins Web 管理界面支持任务创建、代码拉取、构建、测试、部署等自动化流水线环境依赖龙芯 3B6000 服务器、支持 LoongArch 的 Linux 发行版如 Loongnix、UOS、麒麟网络要求服务器需能访问外部网络以下载 Docker 安装包和容器镜像适合场景在国产化龙芯平台上搭建自动化构建、测试与部署环境适用于软件开发、运维、测试团队2. 适用场景与使用边界这个方案主要解决在龙芯架构上快速搭建标准化 CI/CD 环境的问题。适合谁用龙芯平台开发者需要在本地或开发服务器上搭建构建环境。国产化项目运维负责在龙芯服务器上部署和维护持续集成流水线。技术评估人员评估龙芯生态下 Docker 和主流开源工具链的可用性与成熟度。能解决什么问题环境标准化通过 Docker 容器避免直接在宿主机上安装复杂的 Jenkins 及其 Java 依赖保证环境一致性。快速部署与迁移一个docker run命令即可启动 Jenkins方便在不同龙芯机器间迁移。资源隔离Jenkins 及其构建任务在容器内运行与宿主机环境隔离更安全。利用社区镜像如有如果存在适配 LoongArch 的 Jenkins 镜像可以省去复杂的交叉编译和适配工作。不适合什么场景超大规模集群对于需要管理成千上万节点的 Jenkins 集群单机 Docker 部署可能只是起点需要更复杂的架构。对性能有极致要求容器化会有轻微的性能开销如果对构建速度有毫秒级极致要求需评估。无法访问外网的环境需要提前在有网环境下载好 Docker 安装包和 Jenkins 镜像再离线导入。安全与合规边界权限控制Jenkins 拥有执行 shell 命令的能力务必妥善管理管理员账号和项目权限。网络安全默认 Jenkins 会开启 Web 端口如 8080确保防火墙策略正确避免暴露在公网。数据持久化务必做好 Jenkins 工作目录/var/jenkins_home的卷挂载防止容器重启后数据丢失。3. 环境准备与前置条件开始部署前请确保你的龙芯 3B6000 服务器满足以下条件。1. 硬件与操作系统CPU: 龙芯 3B6000。操作系统: 一个支持 LoongArch 架构的 Linux 发行版。常见的有Loongnix Server统信 UOS Server麒麟软件服务器操作系统建议配置: 至少 4GB 内存20GB 可用磁盘空间。运行 Jenkins 和多个构建任务时内存需求会增长。2. 网络连接服务器需要能够访问互联网用于下载 Docker 安装包和后续拉取镜像。可以通过ping www.baidu.com测试网络连通性。3. 系统更新在安装任何新软件前建议先更新系统包管理器并升级现有软件包以确保系统处于最新状态。# 以 Loongnix 或基于 Debian/Ubuntu 的衍生版为例使用 apt sudo apt update sudo apt upgrade -y # 如果是基于 CentOS/RHEL 的发行版使用 yum 或 dnf # sudo yum update -y4. 检查现有 Docker检查系统是否已经安装了旧版本的 Docker避免冲突。docker --version如果已安装但版本较低或不是官方版本可以考虑先卸载。卸载命令取决于系统的包管理器。4. 安装 Docker 引擎在龙芯架构上安装 Docker通常不能直接使用apt install docker.io或yum install docker因为官方仓库可能没有提供 LoongArch 的二进制包。我们需要从龙芯社区或发行版提供的仓库进行安装。步骤 1 卸载旧版本可选如果之前安装过先进行清理。sudo apt remove docker docker-engine docker.io containerd runc -y sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd步骤 2 安装依赖工具安装ca-certificates、curl、gnupg、lsb-release等工具。sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release步骤 3 添加 Docker 官方 GPG 密钥可选主要针对 x86/arm64对于龙芯此步骤可能不适用但添加也无妨。如果网络不通可跳过。sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg步骤 4 添加适用于龙芯的 Docker 仓库这是关键步骤。你需要根据你使用的具体龙芯发行版添加正确的软件源。情况A 发行版已提供 Docker 包很多国产发行版已经集成了适配的 Docker。首先检查你的/etc/apt/sources.list或/etc/yum.repos.d/下的源文件。例如在 Loongnix 中可能已经配置了包含 Docker 的源。情况B 手动添加龙芯社区源可以参考龙芯开源社区或你的操作系统厂商提供的文档。例如可能需要添加像http://pkg.loongnix.cn/loongnix这样的源。请以你所用系统的官方文档为准。# 以下是一个示例切勿直接使用请替换为你的实际源地址 # echo deb [archloongarch64] http://your-loongarch-mirror/loongnix stable main | sudo tee /etc/apt/sources.list.d/loongnix.list步骤 5 安装 Docker Engine添加正确的源后更新包列表并安装 Docker。sudo apt update # 搜索可用的 docker 包确认名称 # apt search docker-ce | grep docker sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin根据网络搜索材料中提到的“龙芯3B6000 安装高版本rpm Docker 29.5.1”在某些使用 RPM 包管理器的系统如基于 CentOS 的龙芯系统上你可能需要安装docker的 RPM 包命令可能是sudo yum install docker或sudo dnf install docker。步骤 6 启动 Docker 并设置开机自启sudo systemctl start docker sudo systemctl enable docker步骤 7 验证 Docker 安装运行一个测试镜像验证 Docker 是否安装成功并能正常运行容器。sudo docker run hello-world如果看到 “Hello from Docker!” 等欢迎信息说明 Docker 引擎安装成功。如果找不到hello-world的 LoongArch 镜像可以尝试拉取一个更小的、支持多架构的镜像进行测试如busybox。sudo docker run --rm busybox echo “Docker on LoongArch is working!”步骤 8 可选将当前用户加入 docker 组为了避免每次运行docker命令都需要sudo可以将你的用户加入docker组。sudo usermod -aG docker $USER重要执行此命令后你需要完全退出当前终端会话并重新登录或者新开一个终端用户组更改才会生效。5. 获取与运行 Jenkins 镜像Docker 安装成功后下一步就是获取并运行 Jenkins 镜像。一个挑战是Docker Hub 上的官方jenkins/jenkins镜像主要支持amd64和arm64架构可能没有直接提供loongarch64的版本。方案一使用已移植的镜像如果存在优先搜索龙芯社区或国内镜像仓库是否有移植好的 Jenkins 镜像。搜索镜像# 可以在 Docker Hub 或阿里云、华为云等国内镜像仓库搜索 # 例如使用 docker search但结果可能有限 docker search jenkins --filter “is-officialtrue”拉取镜像如果找到了如loongnix/jenkins或registry.cn-loongarch64.loongnix.cn/jenkins这样的镜像直接拉取。docker pull loongnix/jenkins:lts方案二使用通用 Java 镜像自行构建如果找不到现成的镜像可以基于一个支持 LoongArch 的 Java 运行时镜像如openjdk:11-jdk或eclipse-temurin:11-jdk的loongarch64版本通过 Dockerfile 自行安装 Jenkins。创建 Dockerfile# 使用一个已知支持loongarch64的基础镜像例如龙芯提供的OpenJDK镜像 FROM cr.loongnix.cn/library/openjdk:11 # 设置 Jenkins 版本和环境变量 ARG JENKINS_VERSION2.440.1 ENV JENKINS_HOME /var/jenkins_home ENV JENKINS_SLAVE_AGENT_PORT 50000 # 安装 Jenkins RUN apt update apt install -y wget \ wget https://get.jenkins.io/war-stable/${JENKINS_VERSION}/jenkins.war -O /usr/share/jenkins/jenkins.war \ apt purge -y wget apt autoremove -y rm -rf /var/lib/apt/lists/* # 创建 Jenkins 用户和目录 RUN useradd -d “$JENKINS_HOME” -u 1000 -m -s /bin/bash jenkins RUN mkdir -p /usr/share/jenkins/ref # 暴露端口 EXPOSE 8080 EXPOSE 50000 # 设置卷和用户 VOLUME $JENKINS_HOME USER jenkins # 启动命令 ENTRYPOINT [“java”, “-jar”, “/usr/share/jenkins/jenkins.war”]注意上述 Dockerfile 仅为示例。你需要确认cr.loongnix.cn/library/openjdk:11镜像是否存在且可用并选择合适的 Jenkins 版本。构建镜像docker build -t my-loongarch-jenkins:latest .方案三直接运行 Jenkins WAR 包最简单直接的方式是在宿主机下载 Jenkins 的通用 WAR 包然后在支持 LoongArch 的 Java 容器中运行它。下载 Jenkins WAR 包wget https://get.jenkins.io/war-stable/latest/jenkins.war使用 Docker 运行# 创建一个用于持久化数据的目录 mkdir -p ~/jenkins_home # 运行容器将 WAR 包和持久化目录挂载进去 docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v ~/jenkins_home:/var/jenkins_home \ -v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war这个命令做了几件事-d: 后台运行容器。--name jenkins: 给容器命名。-p 8080:8080: 将容器的 8080 端口Jenkins Web 界面映射到宿主机的 8080 端口。-p 50000:50000: 映射代理端口用于 Jenkins 节点通信。-v ~/jenkins_home:/var/jenkins_home:至关重要。将宿主机的~/jenkins_home目录挂载到容器的 Jenkins 工作目录实现数据持久化。-v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war: 将下载的 WAR 包挂载到容器内。最后指定基础镜像和启动命令。6. 初始化配置与访问 Jenkins无论采用哪种方案运行了 Jenkins 容器接下来的配置步骤是通用的。步骤 1 检查容器状态docker ps你应该能看到一个名为jenkins或你指定的名字的容器正在运行并且端口映射正确。步骤 2 获取初始管理员密码Jenkins 第一次启动时会生成一个随机的初始管理员密码保存在容器内的/var/jenkins_home/secrets/initialAdminPassword。由于我们做了目录挂载这个文件实际上在宿主机的~/jenkins_home/secrets/目录下。cat ~/jenkins_home/secrets/initialAdminPassword复制输出的那一长串密码。步骤 3 访问 Jenkins Web 界面打开你的浏览器访问http://你的龙芯服务器IP地址:8080。你会看到 “Unlock Jenkins” 页面将上一步复制的密码粘贴进去点击 “Continue”。接下来是 “Customize Jenkins” 页面建议选择 “Install suggested plugins” 来安装推荐插件。这个过程可能需要几分钟取决于网络速度。插件安装完成后会提示你创建第一个管理员用户。建议在此创建一个新的管理员账号并记住密码。最后配置 Jenkins 实例的 URL默认是http://你的服务器IP:8080确认即可。步骤 4 完成安装并登录完成上述步骤后你就进入了 Jenkins 的主仪表板。至此Jenkins 已经成功部署在龙芯 3B6000 的 Docker 容器中。7. 基础功能测试与验证部署完成后我们需要验证 Jenkins 的基本功能是否正常。测试 1 创建第一个自由风格任务在 Jenkins 首页点击 “新建 Item”。输入任务名称例如 “Test-LoongArch-HelloWorld”选择 “Freestyle project”点击 “OK”。在配置页面向下滚动到 “Build Steps” 部分。点击 “Add build step”选择 “Execute shell”。在命令框中输入简单的测试命令echo “Hello from LoongArch 3B6000!” uname -a docker version点击 “Save”。回到任务页面点击 “Build Now” 立即构建。构建开始后点击构建历史中的编号如 #1然后点击 “Console Output” 查看实时日志。验证在控制台输出中你应该能看到打印的 “Hello…” 信息以及uname -a输出的系统信息应包含loongarch64还有docker version输出的 Docker 版本信息。这表明 Jenkins 可以在容器内成功执行 Shell 命令并能访问宿主机 Docker。测试 2 验证 Docker 集成Docker in Docker很多 CI/CD 流水线需要 Docker 来构建镜像。我们需要测试 Jenkins 容器内的 Docker 客户端能否与宿主机 Docker 守护进程通信。修改上面的测试任务或者新建一个任务。在构建步骤的 Shell 命令中尝试运行一个简单的 Docker 命令docker run --rm busybox echo “Docker command executed inside Jenkins container on LoongArch.”运行这个任务。可能遇到的问题与解决权限错误如果提示 “Got permission denied while trying to connect to the Docker daemon socket…”这是因为 Jenkins 容器内的用户没有权限访问宿主机的 Docker socket。解决方案在启动 Jenkins 容器时将宿主机的 Docker socket 挂载到容器内并确保容器内用户有权限通常通过使用 root 用户或调整组权限。更安全的做法是使用 Docker DinDDocker in Docker或使用专门的 Docker 构建代理。一个简单的测试启动命令修改如下注意安全风险docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v ~/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ # 挂载 Docker socket -v $(pwd)/jenkins.war:/usr/share/jenkins/jenkins.war \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war重新运行容器并执行测试任务应该能成功执行 Docker 命令。8. 配置优化与最佳实践基础功能跑通后可以进行一些优化配置让 Jenkins 更实用、更安全。1. 数据持久化与备份我们已经通过-v ~/jenkins_home:/var/jenkins_home实现了数据持久化。此外你应该定期备份~/jenkins_home目录。考虑使用 Docker 卷docker volume create jenkins-data来管理数据而不是直接绑定宿主机目录以获得更好的可移植性。2. 时区设置容器内默认可能是 UTC 时间。可以通过环境变量调整容器时区使日志时间与本地时间一致。# 在 docker run 命令中添加环境变量 -e TZAsia/Shanghai完整的运行命令示例docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ # 使用命名卷 -v /var/run/docker.sock:/var/run/docker.sock \ -e TZAsia/Shanghai \ cr.loongnix.cn/library/openjdk:11 \ java -jar /usr/share/jenkins/jenkins.war3. 资源限制为防止 Jenkins 容器占用过多宿主资源可以设置 CPU 和内存限制。# 在 docker run 命令中添加资源限制 --memory2g \ # 限制内存为 2GB --cpus“1.5” # 限制使用 1.5 个 CPU 核心4. 使用 Docker Compose 管理使用docker-compose.yml文件可以更方便地定义和管理服务。创建一个docker-compose.yml文件version: ‘3.8’ services: jenkins: image: cr.loongnix.cn/library/openjdk:11 # 或你构建的镜像名 container_name: jenkins restart: unless-stopped ports: - “8080:8080” - “50000:50000” volumes: - jenkins-data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - ./jenkins.war:/usr/share/jenkins/jenkins.war environment: - TZAsia/Shanghai command: java -jar /usr/share/jenkins/jenkins.war # 资源限制 # deploy: # resources: # limits: # cpus: ‘1.5’ # memory: 2G volumes: jenkins-data:然后使用docker-compose up -d启动服务。5. 插件安装根据你的项目需求安装必要的 Jenkins 插件例如Git Plugin 用于从 Git 仓库拉取代码。Pipeline 用于定义流水线即代码Jenkinsfile。Docker Pipeline 在流水线中集成 Docker。Blue Ocean 提供更现代的 UI 体验。 可以在 Jenkins 的 “Manage Jenkins” - “Plugins” 中搜索安装。9. 常见问题与排查方法在龙芯平台上部署可能会遇到一些特殊问题。问题现象可能原因排查方式解决方案docker run失败提示no matching manifestDocker Hub 上没有对应loongarch64架构的镜像。docker pull时观察错误信息。1. 寻找龙芯社区移植的镜像。2. 使用支持loongarch64的基础镜像如龙芯提供的 OpenJDK自行构建。Jenkins 启动后 Web 页面无法访问1. 防火墙未开放端口。2. 容器启动失败。3. 端口被占用。1.docker ps查看容器状态。2.docker logs jenkins查看容器日志。3.netstat -tlnp | grep 8080检查端口占用。1. 开放防火墙端口sudo ufw allow 8080。2. 根据日志解决启动错误如 Java 版本、权限问题。3. 更换映射端口-p 8081:8080。控制台输出中文乱码容器内缺少中文字符集。在容器内执行locale查看。在 Dockerfile 中安装中文字体包或设置环境变量LANGC.UTF-8。插件安装极其缓慢或失败默认插件中心网络连接不畅。观察插件管理页面的下载进度和错误信息。更换为国内镜像源在 “Manage Jenkins” - “Plugin Manager” - “Advanced” 中将 “Update Site” 替换为国内镜像 URL例如清华源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。构建任务中无法执行 Docker 命令Jenkins 容器内没有 Docker 客户端或无法连接到宿主机 Docker 守护进程。在任务 Shell 中执行which docker和docker info。1. 确保启动容器时挂载了 Docker socket (-v /var/run/docker.sock:/var/run/docker.sock)。2. 考虑使用 Jenkins 的 Docker 代理或 Kubernetes 插件来运行构建环境。日志时间与本地时间不符容器时区未设置默认为 UTC。查看 Jenkins 系统日志的时间戳。启动容器时添加环境变量-e TZAsia/Shanghai。initialAdminPassword文件为空或找不到1. 目录挂载权限问题。2. Jenkins 首次启动未完成。1. 检查~/jenkins_home/secrets/目录权限。2. 查看容器日志docker logs jenkins。1. 确保挂载目录对容器内 Jenkins 用户UID 1000可写。2. 等待 Jenkins 完全启动或删除~/jenkins_home目录重新启动容器会丢失数据。10. 总结与下一步在龙芯 3B6000 上通过 Docker 部署 Jenkins核心挑战在于软件生态的适配。成功的关键在于找到或构建一个能在loongarch64架构上运行的 Java 环境并以此为基础运行 Jenkins 的通用 WAR 包。本文提供的“方案三直接运行 WAR 包”是目前最直接、最可能成功的方法。部署完成后你获得了一个在国产化平台上可用的自动化引擎。接下来可以配置项目将你的 Java、Python、Go 或前端项目配置到 Jenkins 上实现代码提交后自动构建。探索流水线尝试使用 Jenkins PipelineJenkinsfile来定义更复杂、可版本化的构建流程。集成国产组件探索如何与国产 Git 服务如 Gitee、国产制品库等集成。性能监控观察在龙芯平台上的构建性能与 x86 平台进行对比评估是否满足项目需求。这个方案证明了在龙芯架构上运行主流开源 DevOps 工具是可行的为国产化技术栈的持续集成与交付提供了实践参考。如果在部署中遇到其他龙芯特有的问题多关注龙芯开源社区和所用操作系统的官方文档通常能找到解决方案。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度