繁体   English   中英

停止 Azure 管道 AWS ECR 推送任务从存储库名称中删除正斜杠

[英]Stop Azure Pipeline AWS ECR Push task removing forward slash from repository name

我正在尝试将图像从我的 Azure 管道推送到包含正斜杠的 AWS ECR,但管道不断失败,因为 ECR 任务似乎正在删除额外的正斜杠。

我的管道包含以下内容:

- task: ECRPushImage@1
  displayName: 'Push latest image'
  inputs:
    imageSource: 'imagename'
    sourceImageName: 'appname'
    repositoryName: 'team-name/appname'
    forceDockerNamingConventions: true

构建管道显示它正在从存储库名称中删除正斜杠:

Adding tag '##########.dkr.ecr.#########.amazonaws.com/team-nameappname:latest' to image 'appname:latest'

然后结束:

name unknown: The repository with name 'team-nameappname' does not exist in the registry with id '##########'这是正确的,因为 repo 名称是team-name/appname

如果我将 ECR 更改为不包含正斜杠,则任务错误地标记了我的图像:

Adding tag '##########.dkr.ecr.#########.amazonaws.com/team-name:latest' to image 'appname:latest'

我们有很多存储库,需要按团队名称和应用程序名称将它们分开。

我尝试在名称中使用//但这也会导致任务失败。

如何将我的图像推送到名称中带有正斜杠的 ECR?

我是否需要不使用 ECR 推送任务而使用docker命令? 还是 AWS CLI 任务?

我已经查看了文档和 SO,但没有任何运气:-(

事实证明forceDockerNamingConventions导致了这个问题。 Docker 命名约定仅允许小写字母、数字或 - 和 _。

我在这里查看了 ECR 推送任务的源代码,发现了问题。

将标志设置为 false(下面代码段中的最后一行)后,推送成功,名称中带有正斜杠

- task: ECRPushImage@1
  displayName: 'Push latest image'
  inputs:
    imageSource: 'imagename'
    sourceImageName: 'appname'
    repositoryName: 'team-name/appname'
    forceDockerNamingConventions: false

我现在在我的存储库中有正确的图像名称:-)

Pushing image '##########.dkr.ecr.#####.amazonaws.com/team-name/appname:latest' to Elastic Container Registry

希望这可以帮助遇到同样问题的其他人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM