Соединение MySQL работает при доступе к приложению через компьютер (конечные точки API могут использовать MySQL), но не при доступе к нему из PHPUnit (локально).
Я подключил PhpStorm к Docker через сокет TCP tcp://localhost:2375
Вот что я получаю после выполнения docker ps
: 0.0:8083->3306/tcp mysql
Вот как я настраиваю интерпретатор CLI:
Воткак настроить PHPUnit:
Я дважды проверил свой .env
:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=databasename
DB_USERNAME=databaseuser
DB_PASSWORD=123456
Также дважды проверил мой docker.compose.yml
:
mysql:
image: mysql
container_name: mysql
working_dir: /application
volumes:
- .:/application
- ./storage-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=databasename
- MYSQL_USER=databaseuser
- MYSQL_PASSWORD=123456
ports:
- "8083:3306"
Кроме того, я прочитал эту статью и каждый вопрос StackOverflow, связанный с этой ошибкой. И все же я все еще получаю это после попытки User::all()
в тесте
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname
Вот как выглядит структура моего проекта:
dockerProject
/docker/
/nginx/
nginx.conf
/php-fpm/
Dockerfile
/server/ (<--Laravel project)
docker-compose.yml
Я разочарован, что еще я могу сделать, чтобы сделатьэто работает?
ОБНОВЛЕНИЕ Это целый docker-compose.yml
файл:
version: "3.1"
services:
mysql:
image: mysql
container_name: mysql
working_dir: /application
volumes:
- .:/application
- ./storage-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=databasename
- MYSQL_USER=databaseuser
- MYSQL_PASSWORD=123456
ports:
- "8083:3306"
webserver:
image: nginx:alpine
container_name: webserver
working_dir: /application
volumes:
- .:/application
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8081:80"
php-fpm:
build: docker/php-fpm
container_name: php-fpm
working_dir: /application
volumes:
- ./server:/application
# - .:/application
- ./docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini