首页 文章

Jenkins Docker声明.withRun

提问于
浏览
1

我正在使用管道文件的声明格式,并在我的项目根目录中使用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

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

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

    更多信息here

相关问题