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

时间:2016-05-24 21:55:04

标签: amazon-web-services docker vagrant

我发现你可以使用Vagrant和Docker作为提供者,我觉得这很酷。 Official doc

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

我想知道Vagrant是否支持CREATE TABLE IF NOT EXISTS users ( ... totalMessages INTEGER DEFAULT '0') 从AWS Registry获取docker镜像?

编辑:

我试过了:

aws ecr get-login

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了使用get-authorization-token的方式我不知道这是最好的方式,但它现在有效。

get-authorization-token命令创建有效令牌12小时。 (我认为这可以改变)你可以看到official doc

如果您使用的是MAC More info(无法使用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)

我将等待评论或改进。