簡體   English   中英

Jenkinsfile中的Docker代理正確的語法和命令未在輸出日志中找到錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM