我正在使用Drone.IO CI / CD软件在同一区域EU-WEST-1中的另一个AWS账户中构建映像并将其发布到ECR。
我已经设置了IAM伪像,它正在连接,但在最后一步失败。似乎Drone忽略了我的注册表选项,而是通过AWS API调用使用了注册表。
Drone正在帐户0987654321中运行,我正在尝试将映像推送到帐户1234567890。
ecr:
image: plugins/ecr
registry: 12345677890.dkr.ecr.eu-west-1.amazonaws.com
repo: repo1/app_name
region: eu-west-1
tags: latest
dockerfile: Dockerfile
我收到以下错误:
+ /usr/local/bin/docker tag blah 0987654321.dkr.ecr.eu-west-1.amazonaws.com/repo1/app_name:latest
+ /usr/local/bin/docker push 0987654321.dkr.ecr.eu-west-1.amazonaws.com/repo1/app_name:latest
The push refers to repository [0987654321.dkr.ecr.eu-west-1.amazonaws.com/repo1/app_name]
name unknown: The repository with name repo1/app_name does not exist in the registry with id '0987654321'
这使得它看起来甚至都没有使用注册表属性,也不使用API调用中的注册表。
答案 0 :(得分:0)
我知道可能会晚一点,但是在我的旧工作中使用了Drone来处理将图像推送到另一个AWS账户中的ECR存储库的特定情况。在旧的bash ECR插件(现在是Go)中,如果没有记错的话,它曾经带有--registry-ids选项。现在看来是documented。
答案 1 :(得分:0)
这看起来像是ECR插件中的已知错误。 registry
设置被忽略,而支持从AWS返回的默认注册表-这将是Drone运行所在的帐户中的一个。
一旦this PR被合并,它应该可以工作。