我在我的Jenkinsfile
(流水线模式)中定义了多个阶段。
我希望在一个Docker容器中运行一个阶段(本地构建),在另一个Docker容器中运行其他一些阶段(交叉构建)。
然而,我还希望Docker容器由相应的Dockerfile
指定,而不是仅由图像名称指定,因为我需要在相应的容器中进行一些定制。
Jenkins文档说明这两种情况都是可能的。
但是,它还声明Dockerfile
将始终用作Docker容器规范的文件名。
我如何创建两个单独的Dockerfile
,并告诉Jenkins将其中一个用于一个阶段,另一个用于其他阶段?
根据我的理解,Jenkinsfile
应该看起来像这样:
pipeline {
agent None
stages {
stage('Local Build') {
agent { dockerfile true }
steps {
sh 'mvn --version'
}
}
stage('Cross-build') {
agent { dockerfile true } // <--- How do I specify *which*
// Dockerfile to use here?
steps {
sh 'node --version'
}
}
}
}
1条答案
按热度按时间gcxthw6b1#
您可以将以下详细信息添加到
Dockerfile
代理中。因此,您只需使用filename
和dir
选项即可。