在Docker容器内运行Jenkins管道测试

时间:2017-08-30 13:03:01

标签: dockerfile jenkins-pipeline

我试图在我的Docker容器内部(或反对)运行我的管道测试。我最初使用Dockerfile来创建容器,但测试总是针对执行作业的jenkins节点运行。我修改了我的jenkinsfile以使用标准的东西,但仍然没有得到我期望的结果。

我最终要完成的是:

  1. 扔掉一个码头工人容器
  2. 将我的源代码复制到容器
  3. 在容器上运行我的python脚本
  4. 我有1& 2工作,但不是3.现在,如果我可以对容器运行测试,我会很高兴,这就是为什么我将Jenkins文件修改为更简单。

    My 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
    

1 个答案:

答案 0 :(得分:1)

据我所知,这些命令将当前目录从jenkins挂载到容器中并将其设置为workdir。还有一个错误,你无法在容器内切换目录。

尝试使用ls /列出该容器根目录中的内容