我正在使用Drone.IO CI/CD软件构建图像,并将其发布到同一地区EU-WEST-1的另一个AWS帐户中的ECR。
我已经设置了IAM人工制品,它正在连接,但在最后一步失败了。Drone似乎忽略了我的注册表选项im传递它,只使用AWS API调用中的注册表。
无人机在账号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'
这使得它看起来似乎甚至没有使用registry属性,而是使用API调用中的registry。
我知道可能有点晚了,但在我的旧工作中使用了Drone来处理将图像推送到另一个AWS帐户中的ECR存储库的特定情况。在旧的bash ECR插件(现在是Go(中,如果没有错的话,它曾经使用--registry-ids选项。现在看来它已经被记录下来了。
这看起来像是ECR插件中的一个已知错误。registry
设置被忽略,取而代之的是从AWS返回的默认注册表,这将是Drone运行的帐户中的注册表。
一旦这个PR被合并,它应该会起作用。