Внедряю Docker в проект на Laravel, но при выполнении миграций в базе данных контейнера, возникает ошибка:
SQLSTATE[HY000] [2002] Connection refused (Connection: mysql, SQL: select table_name as `name`, (data_length + index_length) as `size`, table_comment as `comment`, engine as `engine`, table_collation as `collation` from information_schema.tables where table_schema = 'u2495676_default' and table_type in ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)
Перепроверял все env, docker-compose и прочие настройки, чистил кеш, какой только можно. Разобраться не получилось.
DB_HOST указан как название сервиса docker.
Docker-compose:
services:
nginx:
image: "nginx:stable-alpine"
ports:
- "8000:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- .:/var/www/laravel
depends_on:
- mysql
- php
php:
build:
context: dockerfiles
dockerfile: php.Dockerfile
volumes:
- .:/var/www/laravel
mysql:
image: mysql:8.0
ports:
- "3316:3306"
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
composer:
build:
context: dockerfiles
dockerfile: composer.Dockerfile
volumes:
- .:/var/www/laravel
artisan:
build:
context: dockerfiles
dockerfile: php.Dockerfile
volumes:
- .:/var/www/laravel
entrypoint: ["php", "/var/www/laravel/artisan"]
env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3316
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel