В настоящее время я работаю над двумя взаимосвязанными службами ASP.NET Core WebAPI (Service1 и Service2) в решении. Оба имеют файлы Docker и выставляют порт 80.
Service1 - это независимая служба, которую необходимо вызывать из Service2. Я дал как docker-compose.yml, так и docker-compose.override.yml.
докер-compose.yml
version: '3.4'
services:
services1:
image: ${DOCKER_REGISTRY-}services1
network_mode: bridge
build:
context: .
dockerfile: Services1/Dockerfile
ports:
- "501:80"
services2:
image: ${DOCKER_REGISTRY-}services2
network_mode: bridge
build:
context: .
Services2/Dockerfile
ports:
- "502:80"
докер-compose.override.yml
version: '3.4'
services:
services1:
build:
context: .
dockerfile: Services1/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "1001:80"
services2:
build:
context: .
dockerfile: Services2/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
- SERVICE1=http://localhost:1001
ports:
- "1002:80"
Когда я звоню http://localhost:1001 из http://localhost:1002 с network_mode: bridge , я получаю следующее исключение.
{System.Net.Http.HttpRequestException: невозможно назначить запрошенный адрес
---> System.Net.Sockets.SocketException: невозможно назначить запрошенный адрес
когда я изменяю network_mode на host ( network_mode: host ), я получаю следующее исключение.
System.IO.IOException: 'Не удалось привязать к адресу http://[::]:80:
адрес уже используется. '
Поэтому, пожалуйста, дайте мне знать, как решить проблему.