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
我正在使用管道文件的声明格式,运行在 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