这是一个用于通过SSH连接的Jenkins代理的Docker镜像,它预配置了SSH服务及Jenkins代理运行所需的基础依赖,旨在简化分布式构建环境中Jenkins代理节点的部署流程,支持代理节点通过SSH安全连接至Jenkins主节点并执行构建任务,帮助用户快速搭建稳定、高效的Jenkins分布式构建架构,适用于需要跨节点协作完成自动化构建、测试与部署的开发场景。
收藏数: 66
下载次数: 58607116
类型:
jenkins/ssh-agent这是一个通过 SSH 协议建立连接的 Jenkins 代理镜像,可配合 SSH Build Agents 插件 或其他类似插件使用,适用于 Jenkins 分布式构建场景。详细信息可参考 Jenkins 分布式构建文档。
通过以下命令启动代理容器:
bashdocker run -d --rm --name=agent --publish 2200:22 -e "JENKINS_AGENT_SSH_PUBKEY=<公钥>" jenkins/ssh-agent
参数说明(非必填,仅为示例):
-d:后台运行容器--rm:容器退出后自动删除--name=agent:为容器命名(未指定则随机生成)--publish 2200:22:将主机 2200 端口映射到容器 22 端口(SSH 端口),可通过 ssh jenkins@localhost -p 2200 连接启动后,通过 SSH Build Agents 插件以用户名 jenkins 和对应私钥连接代理。需注意:
Linux 镜像:在代理配置界面中,需将「远程根目录」设为 /home/jenkins/agent。
!Linux 代理的远程根目录设置
Windows 镜像:需将「远程根目录」设为 C:/Users/jenkins/Work。
!Windows 代理的远程根目录设置
若需使用非默认目录(如 Linux 下非 /home/jenkins/agent),需挂载数据卷:
bashdocker run -v 自定义卷名:/home/jenkins/agent:rw jenkins/ssh-agent "<公钥>"
通过 Docker Plugin 使用时,需通过环境变量 JENKINS_AGENT_SSH_PUBKEY 传入公钥(不要作为启动参数):
在 Docker 模板的「环境变量」配置项(高级设置)中添加:
envJENKINS_AGENT_SSH_PUBKEY=<你的公钥>
公钥无需加引号。
在 Docker 代理模板配置界面中,将「远程文件系统根目录」设为 /home/jenkins/agent。
!远程文件系统根目录设置
若使用自定义目录,需在「Docker 卷挂载」中添加对应卷。
!Docker 卷挂载设置
如需基于此镜像添加自定义内容,可参考以下 Dockerfile 示例:
dockerfileFROM jenkins/ssh-agent:debian-jdk17 as ssh-agent # 添加自定义文件(如密钥),并确保权限正确 COPY --chown=jenkins 本地密钥文件 "${JENKINS_AGENT_HOME}/.ssh/目标文件名"
该镜像提供多种配置,可通过以下标签选择(${IMAGE_VERSION} 为具体版本号,见 GitHub Releases):
Linux (debian 基础):
latest、latest-jdk11、jdk11、debian-jdk11、${IMAGE_VERSION}-jdk11
latest-jdk17、jdk17、debian-jdk17、${IMAGE_VERSION}-jdk17
Windows:
nanoserver-1809-jdk11、windowsservercore-ltsc2019-jdk11 等(具体标签见 官方文档)
需安装以下工具:
bashmake list # 输出示例:alpine_jdk11、alpine_jdk17、debian_jdk11、debian_jdk17
bash# 格式:make build-<系统>_<JDK版本> make build-alpine_jdk11 # 构建 alpine 系统 + JDK 11 的镜像
bashmake build
bash# 测试所有镜像 make test # 测试特定镜像(如 alpine_jdk11) make test-alpine_jdk11
make show:查看镜像详细信息(标签、平台、Dockerfile 路径等)make bats:更新 bats 测试工具并运行测试详见 GitHub Releases(2019 年 12 月起开始维护变更日志,更早版本需参考提交历史)。
以下是 jenkins/ssh-agent 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务