Я использую docker -compose в двух отдельных проектах API в. NET Core 3.1
- ContainerAuth (контейнер, в котором выполняется Auth API)
- ContainerAppApi (API для отдельное приложение)
ContainerAuth имеет конечную точку, из которой мне нужно попасть ContainerAppApi
Конечная точка на ContainerAuth
POST
: http://locahost:5000/auth/validate
У меня ContainerAppApi работает в отдельном docker контейнере (совершенно другое репо / проект / et c .. ). Это работает на http://localhost:5100
Проблема При выполнении запроса от ContainerAppApi -> ContainerAuth Я получаю следующее исключение:
Невозможно назначить запрошенный адрес Невозможно назначить запрошенный адрес
Из того, что я читал, проблема в том, что ContainerAppApi не знает о ContainerAuth Api работает на http://localhost:5000
Я думал, что могу установить sh мостовую сеть, но все равно получаю ту же ошибку. Я подтвердил, что оба контейнера подключены к моей сети моста, поэтому мне не хватает какой-то привязки к порту? Или есть какой-то дополнительный шаг в сетевом процессе, который мне не хватает?
docker -compose for ContainerAuth
version: '3.4'
services:
web:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
build:
context: ..
dockerfile: Dockerfile
ports:
- 5000:80
- 5001:443
networks:
- my-network
networks:
my-network:
driver: bridge
external: true
docker -compose for ContainerAppApi
version: '3.4'
services:
web:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
build:
context: ..
dockerfile: Dockerfile
ports:
- 5100:80
- 5101:443
networks:
- my-network
networks:
my-network:
driver: bridge
external: true
docker network ls
NETWORK ID NAME DRIVER SCOPE
23179718cd0a bridge bridge local
431eba987024 host host local
733c83d6dee2 my-network bridge local
2bf6118b71a4 none null local
docker сеть проверить мою-сеть
[
{
"Name": "my-network",
"Id": "733c83d6dee2d8ffb007bdb99324e9312a07d5735d329059a2083a11c1582642",
"Created": "2020-07-11T02:28:09.2078715Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.21.0.0/16",
"Gateway": "172.21.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"741624d9304add4d39bc0dc30b04af2fc26a36e87565d87ac5eca44b2a2e361e": {
"Name": "ContainerAppApi_web_1",
"EndpointID": "623a99e45344ef52c8352fa1a35a6f02c8417107d85bccae6a06289c73b0d4c5",
"MacAddress": "02:42:ac:15:00:03",
"IPv4Address": "172.21.0.3/16",
"IPv6Address": ""
},
"74c08686a62f6028a74796c41f4b2fcfe9e6818588783c3ab0e76665acd032d7": {
"Name": "ContainerAuth_web_1",
"EndpointID": "6bb7a30f2d231514a3569481de166d46c30c78b70b725e5ee595d027dab1639f",
"MacAddress": "02:42:ac:15:00:02",
"IPv4Address": "172.21.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Похоже, все подключено, но что не может ContainerAppApi позвонить ContainerAuth API? Оба работают, и я могу использовать каждый api с помощью Postman.