Доброго времени суток!
Пытаюсь развернуть приложение на yii2 basic в docker-е.
Появляется ошибка SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution.
Мои файлы:
docker-compose.yml
version: '3.5'
services:
php:
image: yiisoftware/yii2-php:7.4-apache
volumes:
- ~/.composer-docker/cache:/root/.composer/cache:delegated
- ./:/app:delegated
ports:
- '8000:80'
depends_on:
- db
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=verysecret
- MYSQL_DATABASE=mdb
- MYSQL_USER=yii2
- MYSQL_PASSWORD=secret
ports:
- '33061:3306'
volumes:
- ./mysql-dump:/etc/dump
файл ./config/db.php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=mysql;dbname=mdb',
'username' => 'root',
'password' => 'verysecret',
'charset' => 'utf8mb4',
'tablePrefix' => 'dtl_',
// Schema cache options (for production environment)
//'enableSchemaCache' => true,
//'schemaCacheDuration' => 60,
//'schemaCache' => 'cache',
];
Буду благодарен за любую мысль по поводу решения этой проблемы и особенно за решение.
UPD. Да, действительно название сервиса в compose файле должен быть тем самым хостом к которому мы обращаемся. То есть параметр dsn в файле ./config/db.php должен быть таким:
mysql:host=db;dbname=mdb
Но у меня всё равно появляется ошибка, но другая. Вот она:
SQLSTATE[HY000] [2002] Connection refused
UPD2. Если добавить имя контейнеру принудительно (параметр в сервисе db container_name), то будет ошибка:
Forbidden
You don't have permission to access this resource.