У меня есть файл docker-compose:
networks:
default:
ipam:
config:
- subnet: 10.48.0.0/16
gateway: 10.48.0.1
services:
haproxy:
build: haproxy
container_name: haproxy
volumes:
- ./haproxy/conf/:/usr/local/etc/haproxy/
- ./haproxy/ssl/:/etc/ssl/xip.io/
ports:
- "80:80"
- "443:443"
networks:
default:
ipv4_address: 10.48.0.2
server:
build: server
container_name: server
restart: always
environment:
- ENV=env=production db=true
ports:
- "8081:8081"
volumes:
- ./server/config:/usr/src/app/config
depends_on:
- haproxy
networks:
default:
ipv4_address: 10.48.0.4
frontend:
build: frontend
container_name: frontend
restart: always
ports:
- "8080:8080"
volumes:
- ./frontend/config:/usr/src/app/config
depends_on:
- server
networks:
default:
ipv4_address: 10.48.0.5
version: '2'
Чтобы развернуть внутренний сервер и интерфейс внешнего интерфейса внутри подсети, определенной в диапазоне 10.48.0.0/16.
Поэтому я попытался назначить фиксированный IP для каждого контейнера. В Linux все в порядке, поэтому я могу достичь 10.48.0.4_8081 / api, но в MacOS, когда я пытаюсь сделать то же самое, у меня есть ERR_CONNECTION_REFUSED .
Если я попытаюсь подключиться без использования IP, но с localhost: 8081 / api, это нормально. Но с несколькими контейнерами у меня есть доступ напрямую с IP.
Внутри каждого контейнера, если я пытаюсь пропинговать другой ip-адрес (пример из интерфейса контейнера с IP 10.48.0.5, я пытаюсь пинговать 10.48.0.4), все в порядке.
Итак, мой вопрос: как я могу сделать, чтобы сделать http-вызов API, который находится на другом сервисе? спасибо за вашу помощь.