使用Jenkins Declarative Pipeline,可以轻松指定 Dockerfile、代理标签、构建参数和运行参数,如下所示:
Jenkinsfile(声明式管道)
agent {
dockerfile {
dir './path/to/dockerfile'
label 'my-label'
additionalBuildArgs '--build-arg version=1.0'
args '-v /tmp:/tmp'
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用脚本化管道语法来实现相同的目标。我找到了一种传递代理标签并运行 args 的方法,但无法传递目录并构建 args。理想情况下,我会写这样的东西(标签和运行参数已经工作):
Jenkinsfile(脚本化管道)
node ("my-label"){
docker.dockerfile(
dir: './path/to/dockerfile',
additionalBuildArgs:'--build-arg version=1.0'
).inside('-v /tmp:/tmp') {
\\ add stages here
}
}
Run Code Online (Sandbox Code Playgroud)
该文档展示了如何使用现有的 docker 映像(即使用image管道中的指令)来完成此操作。
Jenkinsfile(声明式管道)
pipeline {
agent {
docker { image 'node:7-alpine' }
}
stage('Test') {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
Jenkinsfile(脚本化管道)
node {
docker.image('node:7-alpine').inside {
stage('Test') {
//...
} …Run Code Online (Sandbox Code Playgroud)