Я пишу сценарий terraform для создания кластера автоматического масштабирования ECS. Я создал кластер и добавил в него экземпляры контейнера ec2. Мой файл определения задачи содержит изображение из частного репозитория докеров. Я просматриваю официальную документацию aws и нахожу страницу для Аутентификация частного реестра и попробовал оба описанных здесь способа.
- используя dockercfg
- докер путь
Я поместил свой файл ecs.config в корзину S3, и во время загрузки экземпляра я передал пользовательские данные как
#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://<my_bucket_name>/ecs.config /etc/ecs/ecs.config
Во втором подходе я передавал используемые данные как
echo "ECS_ENGINE_AUTH_TYPE=docker" >>/etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"[email protected]"}}" >>/etc/ecs/ecs.config
Я нахожу данные в моем /etc/ecs/ecs.config при входе в мой экземпляр контейнера, но когда я пытаюсь вытащить изображение вручную, я показываю мне ошибку, что изображение не найдено.
Затем я пробую команду входа в докер и вручную ввожу свои учетные данные и снова пытаюсь вытащить этот образ, и в конечном итоге это было успешным.
Я не уверен, есть ли способ достичь частной аутентификации реестра докеров в оптимизированном для ecs образе автоматически по пользовательским данным или нет, или если я что-то делаю не так.
Пожалуйста, помогите мне в этом.