Jenkins Docker 声明式 .withRun

Jenkins Docker Declarative .withRun

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

我的 Jenkinsfile 如下所示:

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

我想将其他参数传递给 docker 运行 命令,类似于这个问题...

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

编辑:

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

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

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

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

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

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

更多信息here