Как подключить Symfony4 к mysql с помощью докера

Я пытаюсь подключить (локальная разработка) symfony4 к базе данных в докере, это контейнер докера

83d1b68ce44a        cytopia/mariadb-10.1:latest      "/docker-entrypoint.…"   3 days ago          Up About an hour    0.0.0.0:3306->3306/tcp                       devilbox_mysql_1

web работает и полностью настроен, я не понимаю, какой хост я должен использовать в файле .env.

Благодарность


person user3174311    schedule 09.12.2018    source источник
comment
Вы используете Windows, Linux, macOS? Операционные системы используют разные способы объявления сети Docker.   -  person A.L    schedule 09.12.2018


Ответы (3)


Вы привязали порт 3306 к хосту, поэтому мы должны указать Symfony использовать этот порт. Мы должны использовать адрес 127.0.0.1, потому что с localhost MySQL пытается подключиться через сокет.

Итак, у вас должно получиться что-то вроде этого:

DATABASE_URL=mysql://USER:[email protected]:3306/DATABASE_NAME

Возможно, вам потребуется настроить доступ к MariaDB:

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: 'mariadb-10.2'

См. тип JSON MariaDB 10.0 с Symfony 4

person A.L    schedule 09.12.2018

В зависимости от использования вы должны попробовать разные подходы. Если вы НЕ используете docker_compose.yml, попробуйте с именем хоста 0.0.0.0:3306, но в случае файла докеров, например, это (это для мудла, но выполняет свою работу).

Поэтому в последнем случае я использую имя service в качестве имени хоста, чтобы выполнить работу. Обычно я использую подход docker-compose.yml для настройки рабочей среды.

Также имейте в виду, что использование docker-compose.yml также использует файл .env для конфигурации, поэтому это также может вызвать конфликт.

person Dimitrios Desyllas    schedule 09.12.2018

DATABASE_URL=mysql://user:password@mariadb:3306/databaseName

В этом примере "mariadb" является псевдонимом контейнера.

person Ilya D    schedule 10.12.2018