Доброго утра.
Собственно, есть проект с двумя микросервисами: site и users. Мне нужно, чтобы site был доступен по 80 порту, а у users все внешние порты были бы закрыты. Для этого использую следующую конфигурацию:
Dockerfile \ siteFROM php:7.2.19-apache
# тут просто устанавливаю все, НИКАКИХ директив, только RUN
EXPOSE 80
Dockerfile \ usersFROM php:7.2.19-apache
# тут просто устанавливаю все, НИКАКИХ директив, только RUN
docker-compose.ymlversion: '3'
services:
site:
build: './site'
ports:
- 80:80
links:
- "users"
users:
build: './users'
expose:
- 8000
Однако проблема в том, что, когда я запускаю `docker-compose up --build", он выдает ошибку "Error starting userland proxy: listen tcp 0.0.0.0:80: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted". При этом в `docker ps` видно, что сервис `users` (!!!) запущен и слушает 80 порт, но почему? Этот порт явно промапан у сервиса site!
Где я ошибся? Как сделать так, чтобы Docker:
- связал 80 порт с моей машины с портом контейнера (80:80)
- оставил в покое users, чтобы к этому сервису можно было бы обратиться только изнутри контейнера site по порту 8000