扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如何进行Windows Docker Agent 镜像的常规使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联,为您提供重庆网站建设、成都网站制作、网站营销推广、网站开发设计,对服务成都混凝土搅拌罐车等多个行业拥有丰富的网站建设及推广经验。创新互联网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!
我们想宣布可以使用官方 Windows agent Docker 镜像,这些镜像允许在 Docker 和 Kubernetes 上使用 Windows 操作系统配置 Jenkins agent。
现在,所有 agent 的正式 Docker 镜像都提供nanoserver-1809
和windowsservercore-1809
标签,其中包括 Windows 镜像以及当前的 Java 8(类似于latest
标签)。 我们还提供了明确的 Java 选择,例如jdk8-windowsservercore-1809
或jdk11-nanoserver-1809
。 版本标记也可用,例如jenkins/agent:4.3-4-jdk8-nanoserver-1809
。
jenkins/agent是一个基础的 agent,它捆绑 agent.jar 来进行 agent<= => master之间的通讯,最有用的是可以作为其他镜像的基础镜像。Windows 镜像从版本4.3-4开始可用。
jenkins/inbound-agent是一个基于上面 jenkins/agent 镜像的 agent,它提供了用 PowerShell 编写的包装类脚本,以帮助指定 agent.jar 的参数。Windows 镜像从版本4.3-4开始可用。
jenkins/ssh-agent是一个安装了 OpenSSH 的镜像, 应该与SSH Build Agents Plugin一起使用。Windows 镜像从版本2.1.0开始可用。
要使用新镜像,您将需要支持运行 Windows 容器的合适 Docker 或 Kubernetes 环境。对于 Windows 桌面用户,最简单的方法是使用Docker for Windows。此处记录了 Kubernetes 对于 Windows 的支持。
jenkins/agent 镜像是 JDK 和 agent.jar(Jenkins Remoting 库)的简单 agent。
该镜像有两个主要用途:
作为其他 Docker 镜像的基础镜像(例如 Dockerfile 中的FROM jenkins/agent:jdk8-nanoserver-1809
),jenkins/inbound-agent 就是基于这个镜像。
该镜像还可用于通过_Launch agent via execution of command on the master_的_Launch method_启动agent,这允许主服务器自动在 docker 容器内启动 agent。
要针对第二个用途运行 agent,请在设置_Remote root directory_为C:\Users\jenkins\agent
后,在 Jenkins 主服务器上指定以下命令:
docker run -i --rm --name agent --init jenkins/agent:jdk8-windowsservercore-1809 java -jar C:/ProgramData/Jenkins/agent.jar
inbound-agent Docker 镜像尝试提供与 agent.jar 可执行文件的更高级别的交互。它提供了一个围绕 agent.jar 的 PowerShell 包装类脚本,并且被指定为入口点,因此您只需要传递一些命令行参数即可运行 agent。已打开一个pull request,其中记录了这些命令行参数和环境变量。
示例:
docker run jenkins/inbound-agent:windowsservercore-1809 ` -Url http://jenkins-server:port ` -WorkDir=C:/Users/jenkins/Agent ` -Secret` -Name
使用环境变量的示例:
docker run -e "JENKINS_URL=http://jenkins-server:port" -e "JENKINS_AGENT_NAME=AGENTNAME" ` jenkins/inbound-agent:windowsservercore-1809 ` -WorkDir=C:/Users/jenkins/Agent ` -Secret` -Name
-Url
、-Name
和-Secret
是必选参数,但可以将其指定为命令行参数或环境变量。如上所述,jenkins/ssh-agent docker 镜像基于与主机的 SSH 通信,而不是基于远程 TCP 或 WebSocket 协议。 该镜像设置了一个jenkins
用户和 OpenSSH 服务器,以便主服务器可以通过 SSH 连接到 agent。该镜像需要 SSH 公钥作为参数,并将该密钥放入jenkins
用户的authorized_keys
文件中,应在主服务器上的 agent 配置中指定私钥,以允许主服务器连接。
示例:
docker run jenkins/ssh-agent:jdk8-windowsservercore-1809 ""
使用docker run
时,还可以将公钥作为环境变量传递。
示例:
docker run -e "JENKINS_AGENT_SSH_PUBKEY=" jenkins/ssh-agent:jdk8-windowsservercore-1809
然后,将能够作为 “jenkins” 使用SSH Build Agents Plugin与匹配的私钥连接该 agent。
看完上述内容,你们掌握如何进行Windows Docker Agent 镜像的常规使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流