[英]Unable to build docker image in jenkins with additional flags
我正在構建 docker 圖像並將其作為 jenkins 管道的一部分推送到 ecr。
environment {
registry = "11111111111.dkr.ecr.eu-west-2.amazonaws.com/bar"
registryCredential = 'ecr-creds'
stages {
stage('Docker Build') {
steps {
dir('assets/'){
script {
dockerImage = docker.build registry
}
}
}
}
stage('Docker Deploy') {
steps{
script {
docker.withRegistry("https://" + registry, "ecr:eu-west-2:" + registryCredential ) {
dockerImage.push()
}
}
}
}
但是,我需要添加標志-.network host
作為我的 docker 構建參數的一部分,這是我能夠成功構建圖像的唯一方法。
執行此sh "docker build -t $registry. -.network host"
有效,但隨后Docker Deploy
階段失敗並出現No such property: dockerImage
錯誤,這是可以理解的,因為不再定義dockerImage
。
有沒有辦法添加-.network host
標志?
Using Docker with Pipeline在 Jenkins 文檔說明中:
可以將其他 arguments 傳遞給 docker build,方法是將它們添加到
build()
方法的第二個參數中。 以這種方式傳遞 arguments 時,該字符串中的最后一個值必須是 docker 文件的路徑,並且應該以用作構建上下文的文件夾結尾)
所以,你應該能夠寫:
stage('Docker Build') {
steps {
dockerImage = docker.build(registry, '--network=host assets')
}
}
(您通常不需要在 Docker 中使用 host.networking,尤其是在映像構建階段,但如果您正在解決 a.network-configuration 問題,那么弄清楚它可能有點棘手。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.