web-dev-qa-db-ja.com

AWS Fargateのリンクコンテナ

AWS Fargateで小さな例をセットアップし、1つのアプリケーションコンテナーと1つのデータベースコンテナーをそこに配置しようとします。

タスク定義は両方のコンテナーを開始しますが、アプリコンテナーはgetaddrinfo ENOTFOUND db db:3306で失敗します。したがって、データベースコンテナーがアプリコンテナーで見つかりませんでした。

FargateはDockerコンテナの「リンク」を許可していないため、それらが相互に通信する方法を知りたいと思います。データベースコンテナーの名前はdbで、ポートは3306で、アプリコンテナーはこれを使用するように構成されています。

残念ながら、コンテナのリンクの定義はFargateでは使用できませんが、「oldschool」ECS/EC2でのみ使用できます。

ローカルのdocker-composeセットアップでは、この方法で動作しています。

25
sebastian

Fargateタスクのコンテナはネットワーク名前空間を共有するため、リンクをまったく使用する必要はありません。単にローカルホスト経由で通信できます。

たとえば、ポート8000​​でWebサーバーを実行しているコンテナAがある場合、コンテナBはcurl http://localhost:8000/

36
Noah