Docker Azure DevOps容器作业步骤

Docker Azure DevOps容器作业步骤,docker,azure-devops,yaml,Docker,Azure Devops,Yaml,是否可以设置多个步骤并从上一步骤下载容器,这样就不必再次构建容器 当前场景: 因此,在发布步骤中,我只想从构建步骤上载预构建的容器,以便上载相关的容器注册表 为什么??因为管道在拉取请求期间触发,即使触发器设置为: trigger: - master - release/* 触发: -主人 -释放/* 我想象这样的情况: jobs: - job: build_and_tests steps: - script: docker build --no-cache -t {.

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

当前场景:

因此,在发布步骤中,我只想从构建步骤上载预构建的容器,以便上载相关的容器注册表

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

trigger: - master - release/* 触发: -主人 -释放/* 我想象这样的情况:

jobs: - job: build_and_tests steps: - script: docker build --no-cache -t {...} displayName: 'Building dockerfile' ... ... ... # upload docker **container** to artifacts? - job: build_and_publish dependsOn: build_and_tests condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/release/')) ) steps: # - download: download the docker **container** from previous job step? - script: docker login -u $(registryUser) -p $(registryPassword) $(registryName) displayName: 'Login to ACR' ... ... ... 工作: -工作:构建和测试 步骤: -脚本:docker构建--无缓存-t{…} displayName:“正在生成dockerfile” ... ... ... #是否将docker**容器**上载到工件? -工作:构建和发布 dependsOn:构建和测试 条件:和(successed(),或(eq(变量['Build.SourceBranch'],'refs/heads/master'),startsWith(变量['Build.SourceBranch'],'refs/heads/release/')) 步骤: #-下载:从上一个作业步骤下载docker**容器**? -脚本:docker登录-u$(registryUser)-p$(registryPassword)$(registryName) displayName:“登录到ACR” ... ... ... #标志着我的想象力:)有什么想法吗

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

根据描述,如果仅实现了这两种设想,则可以将
复制文件
任务和
发布构建工件
任务添加到第一个作业中,以将dockerfile上载到工件。然后通过第二个作业中的下载构建工件任务下载dockerfile

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

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

根据描述,如果仅实现了这两种设想,则可以将
复制文件
任务和
发布构建工件
任务添加到第一个作业中,以将dockerfile上载到工件。然后通过第二个作业中的下载构建工件任务下载dockerfile

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


是的,我浏览文档已有一段时间了,但找不到我要找的内容。还有
将dockerfile上传到工件?
我的措辞很糟糕,我对“dockerfile”不感兴趣,比如说,我对构建的容器感兴趣,所以我不必再次构建它。不过,感谢您提供了一些指针:)容器对于在多个作业中运行步骤也很有用。你可以参考这个。是的,我已经浏览了一段时间的文档,但找不到我要找的东西。还有
将dockerfile上传到工件?
我的措辞很糟糕,我对“dockerfile”不感兴趣,比如说,我对构建的容器感兴趣,所以我不必再次构建它。不过,感谢您提供了一些指针:)容器对于在多个作业中运行步骤也很有用。你可以参考这个。你可以把图像推到ACR,然后在下一个作业中拉出来,或者你可以把它放在artifactory中,但我不会。为什么不把这些步骤放在同一个作业中呢?因为DependsOn,它们无论如何都会按顺序运行。但是如果你想,那么你可以使用缓存,然后在第二个作业中再次构建映像,使用缓存:你可以将映像推送到ACR,然后在下一个作业中拉取它,或者你可以将它放在artifactory中,但我不会。为什么不把这些步骤放在同一个作业中呢?因为DependsOn,它们无论如何都会按顺序运行。但如果您愿意,则可以使用缓存,然后在第二个作业中使用缓存再次构建映像: