我在我的Jenkinsfile(管道模式)中定義了多個階段。
我想在一個 Docker 容器內運行一個階段(本地構建),并在另一個 Docker 容器內運行一些其他階段(交叉構建)。
但是,我還希望 Docker 容器由相應Dockerfile的 s 而不是僅由影像名稱指定,因為我需要在相應的容器中進行一些自定義。
Jenkins 檔案指出這兩種情況都是可能的。
但是,它還宣告將Dockerfile始終用作 docker 容器規范的檔案名。
如何創建兩個單獨Dockerfile的 s 并告訴 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'
}
}
}
}
uj5u.com熱心網友回復:
您可以將以下詳細資訊添加到Dockerfile代理。所以你可以簡單地使用filename和dir選項。
agent {
// Equivalent to "docker build -f Dockerfile.build --build-arg version=1.0.2 ./build/
dockerfile {
filename 'Dockerfile.build'
dir 'build'
label 'my-defined-label'
additionalBuildArgs '--build-arg version=1.0.2'
args '-v /tmp:/tmp'
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/510166.html
標籤:码头工人詹金斯詹金斯管道
