Jenkins Docker声明.withRun

时间:2018-05-29 19:57:10

标签: docker jenkins jenkins-pipeline jenkins-declarative-pipeline

我正在使用管道文件的声明性格式,并在我的项目根目录中使用Dockerfile定义的docker容器内运行。

我的Jenkinsfile看起来像这样:

pipeline {
  agent {
    dockerfile {
      additionalBuildArgs '--network host'
    }
  }
  stages {
    stage('Test') {
      steps {
        sh 'pytest --version'
      }
    }
}

我想将其他参数传递给与此问题类似的docker run命令...... How to pass docker container arguments when running the image in a Jenkinsfile

是否可以以声明性管道格式执行此操作,还是应该切换?

编辑:

这基本上等同于我在非声明性中尝试做的事情:

node {
  def pytestImage = docker.build('pytest-image:latest', '--network host .')

  pytestImage.inside('--network=host') {
    sh 'pytest --version'
    // other commands ...
  }
}

1 个答案:

答案 0 :(得分:0)

您可以将args选项添加到dockerfile中。它将参数直接传递给docker run调用:

pipeline {
  agent {
    dockerfile {
      additionalBuildArgs '--network host'
      args '--network=host'
    }
  }

  stages {
    stage('Test') {
      steps {
        sh 'pytest --version'
      }
    }
}

更多信息here