Я создаю новое приложение Laravel 5 в контейнере докера. Я могу получить доступ к домашнему URL-адресу и получить приветственное сообщение. Я пытаюсь создать новые маршруты, и они тоже работают. Затем я запускаю контейнер-докер MariaDB для связи с приложением Laravel 5. Здесь начинаются проблемы. Когда я пытаюсь запустить миграции в Laravel 5 с помощью следующей команды:Приложение Laravel 5 не может подключить двигатель MariaDB в контейнере докера
php artisan migrate --force
И я получаю следующее сообщение об ошибке:
Can't connect to MySQL server on '127.0.0.1'
Мой файл .env, как это:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=blog
DB_USERNAME=blog
DB_PASSWORD=123456
Я знаю, что эти переменные используются Laravel для подключения базы данных, поскольку они существуют в файле журнала Laravel следующим образом:
PDO->__construct(‘mysql:127….’, ‘blog’, ‘123456’, Array)
Ядро базы данных MariaDB и работает в контейнере докера. Этот контейнер-докер предоставляет порт 3306 и связан с контейнером, который запускает Laravel. Для того, чтобы связать контейнер я использовать следующую команду Docker:
docker run –i –t - - link mariadb:mysql miguelbgouveia/laravel:v3 /bin/bash
Я также знаю, что мой MariaDB докер контейнер работает с правильными конфигурациями, потому что я использую Docker контейнер PhpMyAdmin, связанный с ним, и я могу соединиться с к база данных с успехом. Я связываю контейнер MariaDB с контейнером phpmyadmin так же, как я привязываю его к контейнеру Laravel (-link mariadb: mysql)
Почему я не могу подключиться к базе данных? Существует какая-либо конфигурация или модуль php для установки, которые отсутствуют?
Ваши контейнеры для докеров имеют разные IP-адреса? – Hackerman
https://docs.docker.com/articles/networking/ – Hackerman
Да @RobertRozas, у моих контейнеров разные IP-адреса. – miguelbgouveia