更新:作成ファイルバージョン3.5以降:
私は同様の問題に遭遇し、私のdocker-compose.ymlプロジェクトの1つに小さな変更を加えることで解決しました。
たとえば、2つのAPI scoring
とがありner
ます。Scoring
apiはner
、入力リクエストを処理するために、apiにリクエストを送信する必要があります。そのためには、両方が同じネットワークを共有すると仮定します。
注:すべてのコンテナーには独自のネットワークがあり、Docker内でアプリを実行するときに自動的に作成されます。たとえば、ner apiネットワークはのように作成されner_default
、スコアリングapiネットワークはという名前になりscoring default
ます。このソリューションはバージョン「3」で機能します。
上記のシナリオのように、私のスコアリングAPIはner apiと通信したいので、次の行を追加します。つまり、ner apiのコンテナーを作成すると、自動的にscoring_defaultネットワークに追加されます。
networks:
default:
external:
name: scoring_default
ner / docker-compose.yml
version: '3'
services:
ner:
build: .
...
networks:
default:
external:
name: scoring_default
scoring / docker-compose.yml
version: '3'
services:
api:
build: .
...
上記のコンテナがscoring_default
、次のコマンドを使用して呼び出された同じネットワークの一部であることがわかります 。
docker inspect scoring_default
{
"Name": "scoring_default",
....
"Containers": {
"14a6...28bf": {
"Name": "ner_api",
"EndpointID": "83b7...d6291",
"MacAddress": "0....",
"IPv4Address": "0.0....",
"IPv6Address": ""
},
"7b32...90d1": {
"Name": "scoring_api",
"EndpointID": "311...280d",
"MacAddress": "0.....3",
"IPv4Address": "1...0",
"IPv6Address": ""
},
...
}