My docker -compose.yml выглядит следующим образом:
version: '3.3'
services:
frontend:
build: frontend
container_name: yii-frontend
ports:
- 20080:80
volumes:
# Re-use local composer cache via host-volume
- ~/.composer-docker/cache:/root/.composer/cache:delegated
# Mount source-code for development
- ./:/app
networks:
- my-marian-net
backend:
build: backend
container_name: yii-backend
ports:
- 21080:80
volumes:
# Re-use local composer cache via host-volume
- ~/.composer-docker/cache:/root/.composer/cache:delegated
# Mount source-code for development
- ./:/app
networks:
- my-marian-net
db:
image: mysql:8.0
container_name: mysql8
command: --user=root --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=verysecret
- MYSQL_DATABASE=yii2advanced
- MYSQL_USER=yii2advanced
- MYSQL_PASSWORD=secret
ports:
- 6033:3306
networks:
- my-marian-net
networks:
my-marian-net:
driver: bridge
Я получаю сообщение об ошибке:
'SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo Не удалось: имя или имя сервера не предоставлено или неизвестно '
Решения, которые я пробовал:
Пинг из контейнера бэкэнда и внешнего интерфейса в mysql8: docker exe c -ti yii-frontend ping mysql8 (Работает!)
Вручную подключите каждый контейнер к одной и той же сети (my-marian- net) docker network connect my -marian- net mysql8 (одинаково для каждого контейнера)
Я подключился к контейнеру mysql и проверил там соединение, все работает.
Я подключился из контейнеров к сервису MySQL 188 MySQL, и он работает.
Пока что не удалось подключиться. В моем коде я использую "db" в качестве имени хоста, так как я использую режим моста.
После попытки различных решений я изолировал проблему с подключением извне docker, Есть ли какие-либо предложения?
Я использую macOS Mojave. Docker версия 19.03