2017-08-30 36 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