Невозможно использовать PHPUnit с помощью Docker - SQLSTATE [HY000] [2002] (PhpStorm 2019.2) - PullRequest
0 голосов
/ 27 октября 2019

Соединение MySQL работает при доступе к приложению через компьютер (конечные точки API могут использовать MySQL), но не при доступе к нему из PHPUnit (локально).

Я подключил PhpStorm к Docker через сокет TCP tcp://localhost:2375 Вот что я получаю после выполнения docker ps: 0.0:8083->3306/tcp mysql

Вот как я настраиваю интерпретатор CLI:

enter image description here

Воткак настроить PHPUnit:

enter image description here

Я дважды проверил свой .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

...