【问题标题】:Azure DevOps job steps with containers使用容器的 Azure DevOps 作业步骤
【发布时间】:2020-06-30 12:43:07
【问题描述】:

是否可以设置多个步骤并从上一步下载容器,这样您就不必再次构建容器?

当前情景:

所以在发布步骤中,我只想从构建步骤上传预构建的容器,这样我就可以上传相关的容器注册表。

为什么?因为管道在拉取请求期间触发,即使触发器设置如下:

扳机: - 掌握 - 发布/*

我想像这样:

工作: - 工作:build_and_tests 脚步: - 脚本:docker build --no-cache -t {...} displayName: '构建 dockerfile' ... ... ... # 将 docker **container** 上传到工件? - 工作:build_and_publish 依赖:build_and_tests 条件:and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release/') ) ) 脚步: # - 下载:从上一个工作步骤下载 docker **container**? - 脚本:docker login -u $(registryUser) -p $(registryPassword) $(registryName) displayName: '登录 ACR' ... ... ...

# 标志着我的想象力 :) 有什么想法吗?

【问题讨论】:

  • 您可以将图像推送到 ACR,然后在下一个作业期间将其拉出,或者您可以将其放入 artifactory,但我不会。为什么不将这些步骤放在同一个作业中,因为 DependsOn,它们无论如何都会按顺序运行。但如果你愿意,那么你可以使用缓存,然后在第二个作业中再次构建图像​​,使用缓存:docs.microsoft.com/en-us/azure/devops/pipelines/release/…

标签: docker azure-devops yaml


【解决方案1】:

将 dockerfile 上传到工件?下载:从 上一个工作步骤?

根据描述,如果只实现这两个想象,可以在第一个job中添加copy filetask和Publish build artifactstask,将dockerfile上传到artifact。然后在第二个作业中通过Download build artifacts任务下载dockerfile。

以下是对这些任务的参考:

【讨论】:

  • 是的,我浏览文档已经有一段时间了,但找不到我要找的东西。 upload dockerfile to artifacts? 我的措辞很糟糕,我对“Dockerfile”不感兴趣,我对构建的容器感兴趣,所以我不必再次构建它。不过感谢您的指点 :)
  • 容器对于在多个作业中运行步骤也很有用。可以参考这个document
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多