从Azure Devops推送到AWS ECR的docker映像的标记管理的最佳实践

xeufq47z  于 2023-04-22  发布在  Docker
关注(0)|答案(1)|浏览(123)

我在Azure DevOps上创建了一个CI,并将创建的映像推送到AWS-ECR。
我遇到了一些问题与维护的标签已被赋予的图像。我想按照这个模式MAIN_VERSION:SUB_VERSION:(latest_tag for X:Y+1)+1
假设我的最新图片是:1.1.1,我希望在下次触发构建时使用标记1.1.2
这是我当前的配置项设置:

# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- master

resources:
- repo: self

variables:
  - group: dev

stages:
- stage: Build
  displayName: Build image
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: ubuntu-latest
    steps:
    - script: |
        aws ecr get-login-password --region eu-central-1 | 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: $(REPOSITORY_URI)
        command: buildAndPush
        tags: |
          $(MAIN_VERSION).$(SUB_VERSION).$(Build.BuildNumber)

我该怎么做?
除此之外,我如何在脚本中设置刚刚创建的图像是latest

jmo0nnb3

jmo0nnb31#

感谢Klevi的评论,这对我很有帮助。
我需要在Azure DevOps x1c 0d1x上安装GitTools扩展
我在/上创建了一个新文件,名称为GitVersion.yml,内容如下:mode: Mainline
之后,我将这些行添加到顶部的steps部分。

- checkout: self
      fetchDepth: 0
    - task: gitversion/setup@0
      displayName: Install GitVersion
      inputs:
        versionSpec: "5.10.x"
    
    - task: gitversion/execute@0
      displayName: Determine Version
      inputs:
        useConfigFile: true
        configFilePath: ./GitVersion.yml

建设和享受!

相关问题