簡體   English   中英

docker容器作為jenkins的構建奴隸

[英]docker container as build slave for jenkins

我已經在同一台機器Ubuntu中安裝了Jenkins和docker。

  • Ubuntu 17.10
  • 詹金斯版 2.73.3
  • Docker版本17.09.0-ce。

我正在嘗試將jenkin docker容器設置為從屬設備,以運行自動化測試套件。

我能夠正確地在Jenkins中設置docker插件以旋轉docker容器,並添加了一個docker模板,其中包含我為設置docker環境而創建的映像。

該映像是在Ubuntu托管的docker上構建的。

現在的問題是,當我從詹金斯(Jenkins)工作時。 它給出了一條錯誤消息(待定—詹金斯沒有標簽docker-slave)

詹金斯待審圖片

當我在Ubuntu計算機上檢查Jenkins日志時,看到以下錯誤消息

com.github.dockerjava.api.exception.NotFoundException: {"message":"pull access 
denied, "message":may require 'docker login'"}

在ubuntu機器中,我已經完成了docker登錄。

我嘗試從中構建容器的映像位於ubuntu本地,而不是推送到任何存儲庫,因此為什么要嘗試提取映像。

此外,什么是權限問題,我需要解決。 從jenkins構建作業時,jenkins用戶將構建容器。 我是否需要在此添加其他內容。

在您的Jenkinsfile中,您可以將憑據與憑據插件一起使用

    // Login to registry
    withCredentials([usernamePassword(credentialsId: 'YOUR_ID_AD_DEFINED_IN_JENKINS', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
        sh "docker login --username=$USER --password=$PASS your.registry.here.com"
    }

    // Build with correct pom version
    sh "docker build -t your.registry.here.com/your_image_here/your_image_name:${POM_VERSION} ."

    // Push
    sh "docker push your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}"

    //pull
    sh "docker pull your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}"

${POM_VERSION}只是我自己的代碼的一部分,當然可以是您喜歡的任何版本

您還需要在Jenkins服務器中定義憑據。 可以在此處找到描述使用詹金斯憑證

檢查您的docker模板配置,然后為“池策略”選擇“從不池”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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