3

我无法让 portainer 与 AWS ECR 一起正常工作。我在 ECR 上启动并运行了我的图像,如果我通过 SSH 使用命令行运行我的 docker-compose,它会按预期工作。如果我做一个简单的 docker pull{myid}.dkr.ecr.eu-west-1.amazonaws.com/{repository}它也可以工作。

但是,如果我尝试通过 portainer GUI 转到相同的图像并点击 pull/push,我总是会收到以下消息:

我的存储库设置: 在此处输入图像描述 至少使用 portainer 我可以很好地了解我正在运行的容器和可用图像,但遗憾的是,到目前为止,我无法使用 GUI 更新它们。通常在进行更新时,我推送(从我的本地计算机),然后在 portainer 中我重新创建容器并指定拉新图像。当然,截至目前,我不能以失败的拉动..

使用 docker“cli”时,我可以做任何我想做的事情,推送、拉取和使用我的 ECR 图像的 docker-compose 可以毫无问题地运行。

提前致谢。

4

2 回答 2

0

我通过在服务器上创建一个 cronjob 解决了这个问题,该服务器每 30 分钟左右运行一次 AWS ECR 存储库(在此处解释)的登录脚本。这样你就不需要在 portainer 中添加注册表了。

您可以通过此处解释的 AWS CLI 检索密码,并使用它通过 portainer 登录。但这是一个坏主意的原因是因为 AWS 每天重置密码两次,因此登录仅在 12 小时内有效。

于 2020-12-11T15:50:10.300 回答
0

不幸的是,我正在使用 aws cli 来处理我的 npm 任务。如果对这里感兴趣,它是:`

  "publish": "npm run _docker:build && npm run _aws:auth && npm run _aws:tag && npm run _aws:push && npm run _docker:prune",
  "_docker:build": "docker build -t *yourImageName* .",
  "_aws:auth": "aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin *yourID*.dkr.ecr.eu-west-1.amazonaws.com",
  "_aws:tag": "docker tag *yourImageName:latest* yourID.dkr.ecr.eu-west-1.amazonaws.com/*yourImageName*:latest",
  "_aws:push": "docker push *yourID*.dkr.ecr.eu-west-1.amazonaws.com/*yourImageNam*e:latest",
  "_docker:prune": "docker image prune -f"

`

于 2020-10-31T16:46:33.603 回答