簡體   English   中英

docker.build() in Jenkins pipeline with two tags

[英]docker.build() in Jenkins pipeline with two tags

如何在使用docker.build()腳本的 Jenkins 管道中為 docker 構建步驟設置另一個標簽?

至於現在我有:

docker.build("artifactory/docker/${IMAGE_NAME}:${BUILD_NO}")

接着

rtDockerPush(
  serverId: "Artifactory",
  image: "artifactory/docker/${IMAGE_NAME}:${BUILD_NO}",
  targetRepo: 'docker',
)
rtPublishBuildInfo(
  serverId: "Artifactory"
)

但我也想用:latest標記它

我試過類似的東西:

docker.build("artifactory/docker/${IMAGE_NAME}:${BUILD_NO}","-t latest .")

但這不起作用(它僅使用內部版本號發布)。

有什么建議嗎?

附言。 根據給定的答案,我最終有兩個推送請求如下:

rtDockerPush(
  serverId: "Artifactory",
  image: "artifactory/docker/${IMAGE_NAME}:${BUILD_NO}",
  targetRepo: 'docker',
)
rtDockerPush(
  serverId: "Artifactory",
  image: "artifactory/docker/${IMAGE_NAME}:latest",
  targetRepo: 'docker',
)
rtPublishBuildInfo(
  serverId: "Artifactory"
)

您需要將構建命令更新為:

docker.build("test-alpine:123", "test-alpine:latest .")

它將在引擎蓋下產生以下 bash 命令:

docker build -t test-alpine:123 -t test-alpine:latest .

所以可能需要將此代碼放入您的 Jenkinsfile 中:

docker.build("artifactory/docker/${IMAGE_NAME}:${BUILD_NO}","-t artifactory/docker/${IMAGE_NAME}:latest .")

要推送其他標簽,您可以使用docker.push命令

def customImage = docker.build("my-image:${env.BUILD_ID}")
customImage.push()

customImage.push('latest')

這是官方文檔代碼: https://www.jenkins.io/doc/book/pipeline/docker/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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