项目介绍:Docker Inbound Agent
项目概述
Docker Inbound Agent 是一种用于 Jenkins 的 Docker 镜像,该镜像专门用于设置 Jenkins 代理,利用 TCP 或 WebSocket 来与 Jenkins 主服务器建立入站连接。伴随着 Jenkins Remoting 库,这个工具通过可配置的代理来简化 Jenkins 自动化的扩展和管理。
需要注意的是,此仓库已经不再维护,其内容现在整合到了 Jenkins 的 docker-agent 仓库中(参见 pull request 570)。
项目背景
最初,这些镜像以 jenkinsci/jnlp-slave
和 jenkins/jnlp-slave
的名称发布,但因为不再维护,用户现在需要使用 jenkins/inbound-agent
替代。这一镜像依旧在 Docker Hub 上提供,足以保证代码的稳定性与用户的便利。
如何配置 Jenkins 代理
以下是在 Jenkins 中配置代理的基本步骤:
- 访问 Jenkins 仪表盘。
- 在主菜单中选择
Manage Jenkins
。 - 进入
System Configuration
中的Nodes
。 - 在侧边菜单中选择
New Node
。 - 填写节点(即代理)的名称和类型,例如:名称为 agent1,类型为 Permanent Agent。
- 填写远程根目录、标签和执行者数量等字段,并将启动方式设为
Launch agent by connecting it to the controller
。 - 保存设置后,代理会被注册但显示离线状态。点击它查看其详细信息。
- 此时可以看到一个密钥,将此密钥用于 Docker 容器的启动参数,或将其设置为环境变量
JENKINS_SECRET
。
启动 Docker 容器
为了启动 Docker 容器,你需要使用适当的命令并替换相关占位符(如 <secret>
和 <agent name>
)。对于 Linux 代理,请使用:
docker run --init jenkins/inbound-agent -url http://jenkins-server:port <secret> <agent name>
对于 Windows 代理,请使用:
docker run jenkins/inbound-agent:windowsservercore-ltsc2019 -Url http://jenkins-server:port -Secret <secret> -Name <agent name>
默认情况下,代理节点应该连接到 Jenkins 控制器上的 agent 端口,标准端口号为 50000。
可选环境变量
可以使用多个可选环境变量进行强化设置,这些变量包括 Java 路径设置 (JENKINS_JAVA_BIN
)、网络连接方式 (JENKINS_WEB_SOCKET
)、代理名称 (JENKINS_AGENT_NAME
) 等等。这些变量提供了灵活的配置,以满足特定的需求。
特殊配置说明
在最新版本中,Docker Inbound Agent 镜像仅支持 JNLP4-connect 协议,同时不再支持 Jenkins 2.32 之前的版本。此外,在使用 Amazon ECS 时需确保 ECS 容器代理得到更新,因为旧版本处理 entryPoint 参数时可能存在问题。
结论
Docker Inbound Agent 是一种高效可靠的 Jenkins 代理配置工具,通过 Docker 容器化技术,大大简化并提升 Jenkins 系统的自动化和可扩展性。使用这种工具,可以轻松管理来自不同环境的 Jenkins 代理并进行快速部署。