[英]Docker agent in Jenkinsfile correct syntax and command not found error in the output log
我檢查了其他帖子,但它們不是我的問題所代表的意思。 我正在上Linuxacademy的“ Jenkins認證工程師”課程,在“功能測試”課程中,我們在Jenkinsfile中添加了帶有某些步驟的Docker代理,但對於使用的語法與官方Jenkins Pipeline文檔中描述的語法感到困惑在管道中使用Docker 。 Jenkins試圖實現的目標是使用CentOS在Jenkins節點上的.jar文件上運行測試,但是該測試需要在Debian OS上運行,為了在CentOS節點上進行測試,Jenkinsfile具有一個階段一個Docker代理和一個命令,該命令從Dockerhub中提取openjdk映像並在其中運行一些命令。 這是Lesson Repo的語法:
stage("Test on Debian") {
agent {
docker 'openjdk:8u121-jre'
}
steps {
sh "wget http://brandon4231.mylabserver.com/rectangles/all/rectangle_${env.BUILD_NUMBER}.jar"
sh "java -jar rectangle_${env.BUILD_NUMBER}.jar 3 4"
請注意,我簡化了文件以使其與進行中的工作相匹配,這是最終版本,但重點在於代理行。 我的第一個問題是,詹金斯(Jenkins)文檔語法與此處使用的語法不同,但在本課視頻中沒有問題,正確的語法應為agent { docker { image 'openjdk:8u121-jre' } }
我的第二個問題是,而我使用一種或另一種語法,也使用了openjdk:7u181-jre,因為該課程中的一種不再可用,因此我在控制台日志輸出中得到此錯誤:
如果轉到節點終端並手動運行
docker運行openjdk:7u181-jre它工作正常,我以非sudo用戶身份運行。
另外我不明白docker命令在Jenkinsfile中的作用:它是在拉容器之后運行容器還是只是拉容器?
關於發生了什么的任何想法? 謝謝。
1)請在Jenkins服務器中安裝docker。
2)請通過運行以下命令來更改Jenkins和docker的用戶模式,然后重新啟動Jenkins和docker,現在您將可以訪問。
sudo usermod -aG docker jenkins服務器用戶名
sudo systemctl重新啟動docker
sudo systemctl重新啟動詹金斯
要安裝Jenkins: https : //www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04
要安裝Docker: https : //www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
注意:已在ubuntu服務器上驗證
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.