Назад | Перейти на главную страницу

Chef recipe for docker registry не работает с AWS ECR

Поваренная книга для докеров "https://github.com/chef-cookbooks/docker"предоставляет docker_registry для аутентификации, как показано ниже.

docker_registry 'https://index.docker.io/v1/' do
username 'publicme'
password 'hope_this_is_in_encrypted_databag'
email 'publicme@computers.biz'
end

Но если мы хотим использовать его для AWS ECR, нам нужно сгенерировать токен входа перед входом.

aws ecr get-login --region us-east-1 #It will generate login token as below. 
docker login -u AWS -p "password token"

но поварская поваренная книга не предоставляет такой возможности. Есть идеи, как это сделать в шеф-поваре?

Вы можете использовать комбинацию наших shell_out помощники и ленивые оценки.

docker_registry 'https://index.docker.io/v1/' do
  username 'AWS'
  password lazy {
    shell_out!("aws ecr get-login --region us-east-1").stdout.split[5]
  }
  email 'publicme@computers.biz'
end

Вот обходной путь, который я использую. Но если у кого-то есть более элегантное решение, поделитесь.

Настройте ключи доступа к вашему узлу. Добавьте это в свой рецепт. Он просто войдет в ECR.

cmd = "aws ecr get-login --region us-east-1"
значение = # {cmd}
list = value.split ("")

docker_registry 'AWS ECR registry' сделать
адрес сервера 'https://xyz.ecr.us-east-1.amazonaws.com'
имя пользователя "AWS"
пароль "# {список [5]}"
электронная почта 'none'
конец