Я унаследовал устаревшее приложение, которое использует redis, mysql и postgresql. Ссылки на 127.0.0.1 и localhost есть везде.
Мой составной файл выглядит так:
version: '3.3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:5.2
ports:
- 9200:9200
mysql:
image: mysql/mysql-server:5.7.24
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_ROOT_PASSWORD: ''
MYSQL_ROOT_HOST: "%"
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
webapp:
image: ubuntu/xenial
hostname: webapp
privileged: true
ports:
- target: 80
published: 80
mode: host
Читая документы, похоже, я могу установить только один network_mode для каждой службы, но я бы хотел использовать что-то вроде:
network_mode: service:elasticsearch
network_mode: service:mysql
Но это не представляется возможным, если я что-то упустил. Есть ли способ справиться с этим? Я просто хочу, чтобы localhost:3306 и localhost:9200 указывали на каждый сервис из сервиса webapp.