2017-08-30 74 views
0

我想運行我的管道測試裏面(或反對)我有一個碼頭集裝箱。我最初使用Dockerfile來創建容器,但測試總是針對執行作業的jenkins節點運行。我修改了我的jenkins文件來使用標準的東西,但仍然沒有得到我所期望的。運行詹金斯管道測試裏面的碼頭集裝箱

什麼,我最終要做到的是:

  1. 扔了一個碼頭工人容器
  2. 我的源代碼複製到容器
  3. 容器上運行我的python腳本

我有1 & 2工作,但不是3.現在我會很高興,如果我可以對容器運行測試,這就是爲什麼我修改Jenkinsfile更簡單。

我Jenkinsfile:

pipeline { 
    agent { 
     docker { image 'node:7-alpine' } 
    } 
    stages { 
     stage('Test') { 
      steps { 
       sh 'pwd' 
       sh 'ls -al' 
      } 
     } 
    } 
} 

當我運行docker run node:7-alpine pwddocker run node:7-alpine ls -al地方,我得到如下:

/ 

bin 
dev 
etc 
home 
lib 
linuxrc 
media 
mnt 
opt 
proc 
root 
run 
sbin 
srv 
sys 
tmp 
usr 
var 

但在詹金斯,我得到:

[test_job] Running shell script 
+ pwd 
/srv/jenkins/workspace/test_job 

[test_job] Running shell script 
+ ls -al 
total 36 
drwxr-x--- 4 5003  5003   4096 Aug 29 20:44 . 
drwxr-xr-x 4 root  root   4096 Aug 29 20:44 .. 
drwxr-x--- 8 5003  5003   4096 Aug 29 20:44 .git 
-rw-r----- 1 5003  5003   1184 Aug 29 19:24 .gitignore 
-rw-r----- 1 5003  5003   802 Aug 29 19:47 Dockerfile 
-rw-r----- 1 5003  5003   247 Aug 29 20:44 Jenkinsfile 
-rw-r----- 1 5003  5003   417 Aug 29 20:24 OriginalJenkinsfile 
-rw-r----- 1 5003  5003   2534 Aug 29 19:24 README.md 
drwxr-x--- 5 5003  5003   4096 Aug 29 19:24 framework 

回答

0

據我知道這些命令掛載詹金斯當前目錄放入容器,並將其設置爲WORKDIR。還有一個錯誤,你不能切換容器內的目錄。

嘗試LS /應列出無論是在該容器

+0

我使用泊塢窗流水線插件的根目錄下,我的代碼實際上是在這裏提到的第一個例子:https://jenkins.io/doc/book/pipeline/docker/- 但測試步驟不像描述的那樣工作。 – cdm

+0

看看我編輯的答案。您期望找到泊塢窗容器的根目錄。但是你實際上列出了一個安裝目錄的內容。試試'ls /' – herm