ECS Auto Scaling クラスターを作成するためのテラフォーム スクリプトを作成しています。クラスターを作成し、そこに ec2 コンテナー インスタンスを追加しました。私のタスク定義ファイルには、プライベート Docker リポジトリからのイメージが含まれています。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
2 番目のアプローチでは、使用したデータを次のように渡しました。
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@example.com"}}" >>/etc/ecs/ecs.config
コンテナ インスタンスにログインすると /etc/ecs/ecs.config にデータが見つかりますが、イメージを手動でプルしようとすると、イメージが見つからないというエラーが表示されます。
次に、そこで docker login コマンドを試し、資格情報を手動で入力して、そのイメージを再度プルしようとすると、最終的に成功しました。
ユーザーデータによって自動的に最適化されたecsイメージでプライベートdockerレジストリ認証を実現する方法があるかどうか、または何か間違っているかどうかはわかりません。
これで私を助けてください。