Я пытаюсь подключить (локальная разработка) 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.
Благодарность




Вы связали порт 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'
В зависимости от использования вам следует попробовать разные подходы. Если вы НЕ используете docker_compose.yml, попробуйте с именем хоста 0.0.0.0:3306, но в случае файла докеров, например, это (это для moodle, но выполняет свою работу).
Поэтому в последнем случае я использую имя услуга в качестве имени хоста, чтобы выполнить свою работу. Обычно я использую подход docker-compose.yml для настройки своей среды бега.
Также имейте в виду, что при использовании docker-compose.yml также используется файл .env для настройки, поэтому это также может вызвать конфликт.
DATABASE_URL=mysql://user:password@mariadb:3306/databaseName
В этом примере "mariadb" - это псевдоним контейнера.
Вы используете Windows, Linux, macOS? Операционные системы используют разные способы объявления сети Docker.