Jenkins Infra 一体化代理镜像是 Jenkins 基础设施(Jenkins Infra)的***代理镜像,旨在简化 Jenkins 环境中代理节点的配置与管理。作为“一体化”(All-in-one)镜像,它集成了 Jenkins 代理运行所需的常用工具、依赖库及协议支持,可直接作为 Jenkins 控制器的代理节点,用于执行 CI/CD 任务、构建流程及自动化操作,减少用户手动配置代理环境的复杂度。
作为 Jenkins 控制器的工作节点,执行 CI/CD 流水线任务(代码拉取、构建、测试、部署等)。
在本地或测试环境中快速启动 Jenkins 代理,验证流水线配置或工具兼容性。
适用于需要多种工具协同的构建任务(如 Java 项目编译 + Docker 镜像打包 + 推送仓库)。
在 Jenkins ***基础设施或企业级 Jenkins 集群中,作为标准化代理节点使用,确保环境一致性。
用于临时执行一次性任务(如数据备份、日志收集、批量脚本运行),任务结束后销毁节点。
从 Docker Hub 或 Jenkins Infra 镜像仓库拉取最新版本:
bashdocker pull jenkins-infra/all-in-one-agent:latest
如需指定版本,可替换 latest 为具体版本号(如 v1.2.3)。
docker run 运行代理节点通过 JNLP 协议连接 Jenkins 控制器(需提前在 Jenkins 控制器中创建代理节点并获取连接参数):
bashdocker run -d \ --name jenkins-agent \ -e JENKINS_URL="[***]" \ # Jenkins 控制器 URL -e AGENT_NAME="my-agent" \ # 代理节点名称(需与 Jenkins 控制器中配置一致) -e AGENT_SECRET="agent-secret-from-jenkins" \ # 代理连接密钥(从 Jenkins 控制器获取) -e PROTOCOL="jnlp" \ # 连接协议(jnlp/ssh,默认 jnlp) -v /var/run/docker.sock:/var/run/docker.sock \ # 如需使用 Docker 命令,挂载 Docker 套接字(可选) jenkins-infra/all-in-one-agent:latest
通过 SSH 协议连接 Jenkins 控制器(需在 Jenkins 控制器中配置 SSH 凭证):
bashdocker run -d \ --name jenkins-agent-ssh \ -e JENKINS_URL="[***]" \ -e AGENT_NAME="ssh-agent" \ -e PROTOCOL="ssh" \ -e SSH_USER="jenkins" \ # SSH 用户名(需与 Jenkins 控制器中配置一致) -e SSH_PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAA..." \ # SSH 公钥(用于 Jenkins 控制器认证) -p 2222:22 \ # 映射 SSH 端口(宿主机端口:容器端口) jenkins-infra/all-in-one-agent:latest
docker-compose 配置创建 docker-compose.yml 文件,定义代理节点服务:
yamlversion: "3.8" services: jenkins-agent: image: jenkins-infra/all-in-one-agent:latest container_name: jenkins-agent environment: - JENKINS_URL=[***] # Jenkins 控制器 URL - AGENT_NAME=compose-agent # 代理节点名称 - AGENT_SECRET=agent-secret-from-jenkins # 代理连接密钥 - PROTOCOL=jnlp # 连接协议 - TOOLS_PATH=/opt/tools # 工具安装路径(可选,默认 /usr/local/bin) volumes: - agent-workdir:/home/jenkins/workspace # 挂载工作目录,持久化任务数据 - /var/run/docker.sock:/var/run/docker.sock # 可选:挂载 Docker 套接字 restart: unless-stopped volumes: agent-workdir: # 定义工作目录卷
启动服务:
bashdocker-compose up -d
| 环境变量名 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
JENKINS_URL | Jenkins 控制器的访问 URL(如 [***] 或 [***]) | - | 是 |
AGENT_NAME | 代理节点名称(需与 Jenkins 控制器中创建的节点名称一致) | default-agent | 是 |
AGENT_SECRET | JNLP 协议连接时的代理密钥(从 Jenkins 控制器节点配置页面获取) | - | 是(JNLP 协议) |
PROTOCOL | 代理连接协议,可选值:jnlp(默认)、ssh | jnlp | 否 |
SSH_USER | SSH 协议的登录用户名 | jenkins | 否(SSH 协议) |
SSH_PUB_KEY | SSH 协议的公钥(需添加到 Jenkins 控制器的凭证中) | - | 是(SSH 协议) |
WORKDIR | 代理节点的工作目录 | /home/jenkins/workspace | 否 |
TOOLS_PATH | 工具安装路径(影响 PATH 环境变量) | /usr/local/bin | 否 |
DEBUG | 是否开启调试模式(输出详细连接日志),可选值:true、false | false | 否 |
如需修改内置工具版本(如 Java、Maven),可通过构建参数自定义镜像:
bashdocker build \ --build-arg JAVA_VERSION=17 \ --build-arg MAVEN_VERSION=3.9.6 \ -t my-custom-agent:latest \ [***]
网络连通性:确保代理容器与 Jenkins 控制器之间网络可达(JNLP 协议默认使用端口 50000,SSH 协议默认使用端口 22)。
权限管理:
/var/run/docker.sock)时需注意安全风险,避免容器内非授权操作宿主机 Docker。--user 参数指定 UID/GID。资源限制:根据任务需求通过 --memory、--cpus 限制容器资源,避免资源耗尽。
持久化数据:建议将工作目录(WORKDIR)挂载为 Docker 卷,避免任务数据因容器重启丢失。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429