您好,登錄后才能下訂單哦!
如何進行Windows Docker Agent 鏡像的常規使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
我們想宣布可以使用官方 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 <secret> ` -Name <agentname>
使用環境變量的示例:
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 <secret> ` -Name <agentname>
-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 "<public key>"
使用docker run
時,還可以將公鑰作為環境變量傳遞。
示例:
docker run -e "JENKINS_AGENT_SSH_PUBKEY=<public key>" jenkins/ssh-agent:jdk8-windowsservercore-1809
然后,將能夠作為 “jenkins” 使用SSH Build Agents Plugin與匹配的私鑰連接該 agent。
看完上述內容,你們掌握如何進行Windows Docker Agent 鏡像的常規使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。