【问题标题】:Is there a way of setting an ECR image as a build artifact in Azure Devops?有没有办法将 ECR 映像设置为 Azure Devops 中的构建工件?
【发布时间】:2021-08-02 06:14:51
【问题描述】:

我正在使用 Azure DevOps 构建和发布管道来部署容器化的 .NET Core 应用程序。以前,镜像仓库是 Docker Hub,部署系统是本地 Kubernetes 集群。但是,现在我们正在转向 AWS,并且正在考虑使用 ECR 和 EKS。

在我目前的管道中,构建管道构建容器镜像并将其推送到 Docker Hub,而发布管道使用 DockerHub 镜像工件作为其源,这一切都很好。

但是,虽然 Azure 市场中有 ECR 构建步骤,但我看不到将 ECR 设置为工件源的方法。有没有人能够解决这个问题?或者我应该将 DLL 和 JSON 设置打包为构建工件,然后有一个 Dockerfile 获取这些文件并在发布步骤开始时构建映像(所以我仍然部署单个映像,然后升级到不同的环境)?

【问题讨论】:

    标签: azure-devops azure-pipelines-release-pipeline amazon-ecr


    【解决方案1】:

    您实际上不必在此处指定任何工件。您实际上应该做的是构建 Docker 映像,然后将其推送到 ECR。稍后在部署阶段,您只需要重用该图像。 Here 是一个很好的教程如何将图像推送到 ECR:

    trigger:
      branches:
        include:
        - master
    
    pool:
      vmImage: 'ubuntu-latest'
    
    variables:
      - group: dev
      - name: DOCKER_REPOSITORY
        value: $(AWS_ACCOUNT_ID).dkr.ecr.$(AWS_REGION).amazonaws.com/$(DOCKER_REPOSITORY_NAME)
    
    steps:
    - script: |
        aws ecr get-login-password --region $(AWS_REGION) | docker login --username AWS --password-stdin $(AWS_ACCOUNT_ID).dkr.ecr.$(AWS_REGION).amazonaws.com
      displayName: 'Login to AWS'
      env:
        AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
        AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
    
    - task: Docker@2
      displayName: Build docker image
      inputs:
        repository: $(DOCKER_REPOSITORY)
        command: buildAndPush
        Dockerfile: Dockerfile
        tags: |
          latest
    

    【讨论】:

    • 嗨@Krzysztof,我可以毫无问题地完成该过程的这一部分 - 这是从 ECR 获取图像作为我遇到问题的工件,因为 Azure 没有 ECR 工件提供程序,而它确实有 Docker Hub(当然还有 ACR)的提供者。
    • docker 提供者是什么意思? ECR 服务连接?
    • 我的意思是,如果您在 Azure Devops 中创建发布管道,您可以选择您的管道可以依赖的许多工件,例如源存储库、Azure 工件,更重要的是我的问题,DockerHub 和 ACR。但是 ECR 没有等价物,大概是因为尚未编写,尽管有一个 ECR 步骤用于将图像发布到 ECR。所以大概有人需要为 Azure DevOps 编写一个插件来实现微软指定的接口,这将允许我将 ECR 直接作为一个工件
    猜你喜欢
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多