You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps中选择指定版本制品构建Docker镜像推送至AWS ECR

环境
  • Azure Dev Ops(代码仓库及流水线触发器)
  • AWS ECR/ECS(目标部署平台)
  • Docker
  • .NET Core Web 应用(v5.0)
当前现状

目前我们通过powershell脚本执行dotnet build构建应用,再通过azurepipeline.yml将生成的压缩包推送至Azure DevOps制品库,该流程运行正常。我们已新增ECR推送任务,可通过源码中的Dockerfile生成镜像并推送至ECR,该环节也可正常运行。

业务问题

我们需要支持在Azure Artifact中选择指定版本的构建产物(例如0.1.24,通过变量传入版本号),使用对应版本的二进制文件和Dockerfile完成Docker镜像构建,目前未找到该需求的实现方案。具体执行流程如下:

  1. 部署人员更新变量"versionNoToDeploy",填入待部署的制品ID或名称
  2. 部署人员运行指定的流水线
  3. 流水线拉取对应制品(若制品无效则返回错误),将压缩包解压至临时目录(该步骤需要技术支持)
  4. 流水线运行Dockerfile构建镜像(该步骤已实现可正常运行)
  5. 流水线将构建好的镜像推送至ECR(该步骤已实现可正常运行)

该需求的背景是:我们会持续构建分支直到产出稳定版本,构建产物会先手动部署到测试服务器验证,通过验证后才需要推送至生产环境的ECR/ECS实例。

流水线核心代码
- pwsh: ./build.ps1 --target Clean Protolint Compile --runtime $(runtime) 
  displayName: ⚙️ Compile

- task: Docker@2
  displayName: Build
  inputs:
     command: build
     repository: appRepo
     tags: |
       $(Build.BuildId)
       deploy
     addPipelineData: true
     Dockerfile: src\DockerfileNew

- task: ECRPushImage@1
  inputs:
     awsCredentials: 'AWS ECR Connection'
     regionName: 'ap-south-1'
     imageSource: 'imagename'
     sourceImageName: 'myApplication'
     sourceImageTag: 'deploy'
     repositoryName: 'devops-demo'
     outputVariable: 'imageTagOutputVar'

- pwsh: ./build.ps1 --target Test Coverage --skip
  displayName: 🚦 Test

- pwsh: ./build.ps1 --target BuildImage Pack --runtime $(runtime) --skip
  displayName: 📦 Pack

- pwsh: ./build.ps1 --target Publish --runtime $(runtime) --skip
  displayName: 🚚 Publish
制品详情

制品详情图

如需更多特定信息可另行提供。


内容的提问来源于stack exchange,提问作者NitinSingh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 00:06:02