2016-09-20 89 views
0

我試圖通過使用Dockerfile作爲Jenkins 2.0管道和插件Docker管道插件中的一個步驟來構建Docker容器。嘗試在Jenkins管道中構建Docker容器時,在構建時獲得「can not stat」錯誤,但爲什麼?

我創建了一個Dockerfile它看起來像這樣:

FROM openjdk:8-jdk 

ENV DEBIAN_FRONTEND noninteractive 

RUN set -x \ 
    && apt-get update \ 
    && apt-get install -y \ 
     file \ 
     aapt \ 
     lib32z1 \ 
     make \ 
     gcc-4.9-base \ 
     libgcc1 \ 
    && rm -rf /var/lib/apt/lists/* 

「的OpenJDK:8 JDK」 是從碼頭工人HUB有效openjdk8圖像。

這裏的管道腳本的相關部分(已經被編輯過的故障排除事項):

stage ('Compilation within Docker') { 
     java = docker.build 'openjdk8:android' 
     java.inside("-e GRADLE_USER_HOME=${GRADLE_USER_HOME} -e ANDROID_HOME=${GRADLE_USER_HOME}/android-sdk-linux") { 
      withCredentials([ // Use Jenkins credentials ID of artifactory 
       [$class: 'UsernamePasswordMultiBinding', credentialsId: artifactory_creds, usernameVariable: 'A_USER', passwordVariable: 'A_PASS'], 
      ]){ 
       sh """ 
       echo "OK!" 
       exit 0 
       """ 

「openjdk8:機器人」是我選擇的圖像,而不是正式的以任何方式名稱。

出於某種原因,當我運行它失敗,出現以下錯誤編譯:

[workspace] Running shell script 
+ docker build -t openjdk8:android . 
Error checking context: 'can't stat '/mnt/storage/jenkins/jobs/product_android_build/workspace/company/build/generated/source/r/production/release/com''. 
[Pipeline] } 
[Pipeline] // stage 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
ERROR: script returned exit code 1 
Finished: FAILURE 

的建立顯然正在運行的詹金斯用戶,但是當我登錄到詹金斯服務器和瀏覽路徑提到在錯誤(/mnt/storage/jenkins/jobs/product_android_build/workspace/company/build/generated/source/r/production/release/com)我看到該文件夾​​的所有者是根。

我試過了chown -R jenkins.jenkins folder,但是在下一次運行之後,根回到了文件夾的所有者(與路徑中的「生成的」文件夾名稱相符)。

任何機會如何解決它?

回答

0

如果有人感興趣...從Jenkins服務器的作業目錄中刪除工作區目錄解決了問題。

相關問題