簡體   English   中英

無法使用附加標志在 jenkins 中構建 docker 映像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM