Я использую контейнер со шлюзом API в порту 80, и мне нужно связать шлюз API между другими контейнерами (все эти с использованием dockerfile и docker-compose). Как я могу сделать так, чтобы эти другие участники не открывали порт локальному хосту, а общались внутри со шлюзом API?
Мой docker-compose:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./:/usr/src/app
- /usr/src/app/node_modules
ports:
- "3000:3000"
Решение:
Изменен файл docker-compose для:
version: '3.5'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./:/usr/src/app
- /usr/src/app/node_modules
expose:
- "3000"
image: api-name-service
container_name: api-name-service
networks:
- api-network
networks:
api-network:
name: api-network-service
Когда службы находятся в одной сети, эти службы могут взаимодействовать с именем службы, например "http://api -name-service: 3000 ".