繁体   English   中英

如何从Vagrant中的隐私AWS ECR存储库中获取Docker映像

[英]How to get docker images from privacy AWS ECR repository in Vagrant

我发现您可以使用Vagrant和Docker作为提供程序,我认为这很酷。 官方文件

该文档显示了使用私有存储库进行设置的部分。 电子邮件,用户名,密码和auth_server

我想知道Vagrant是否支持aws ecr get-login从AWS Registry获得docker镜像?

编辑:

我尝试了这个:

Vagrant.configure("2") do |config|
  config.vm.define "mydocker" do |a|
    a.vm.provider "docker" do |d|
      d.image = "my-account.dkr.ecr.us-east-1.amazonaws.com/myimage:latest"

      #Private registry
      d.email = "my@emai.com"
      d.username = "my-user"
      d.password = "my-pass"
      d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com"

      #Custom Docker Host
      d.vagrant_machine = "dockerhost"
      d.vagrant_vagrantfile = "./dockerHost/Vagrantfile"
    end
  end
end

这是输出错误:(Vagrant尝试使用参数进行登录)

Command: "docker" "login" "-u" "my-user" "-p" "my-pass" "my-account.dkr.ecr.us-east-1.amazonaws.com"

Stderr: Error response from daemon: login attempt to https://my-account.dkr.ecr.us-east-1.amazonaws.com/v2/ failed with status: 401 Unauthorized

谢谢。

我找到了使用get-authorization-token我不知道这是最好的方法,但是目前它是可行的。

get-authorization-token命令将创建一个有效的令牌,持续12小时。 (我认为可以更改),您可以看到官方文档

如果您使用的是MAC 更多信息 (不能与zsh控制台一起使用,请使用bash)

aws ecr get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -D | cut -d: -f2

它将打印解码密码,然后在Vagrantfile中:

...
  #Private registry
  d.email = ""
  d.username = "AWS"
  d.password = "The-decoded-password"
  d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com"
...

而且有效。

也许有必要生成一个有效期超过12小时的密码= 0)

我将等待评论或改进。

暂无
暂无

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

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