4

ECS Auto Scaling クラスターを作成するためのテラフォーム スクリプトを作成しています。クラスターを作成し、そこに ec2 コンテナー インスタンスを追加しました。私のタスク定義ファイルには、プライベート Docker リポジトリからのイメージが含まれています。AWS の公式ドキュメントに目を通し、プライベート レジストリ認証のページを見つけて、 両方の方法を試しました。そこに記載されているとおりです。

  1. dockercfg の使用
  2. ドッカーの方法

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レジストリ認証を実現する方法があるかどうか、または何か間違っているかどうかはわかりません。

これで私を助けてください。

ここに画像の説明を入力

4

1 に答える 1