Почему приложение не видит БД?

Переношу сайт из OpenServer в Докер.

Вот команды
docker build -t site-app . 
docker run -d -p 80:80 -v C:/DATA/OpenServer/domains/site.local/DOCKER/app:/var/www/app --name=site-app-container site-app
docker network create -d bridge site-app-network

docker run -d -p 3306:3306 -v $(pwd)/.data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Pass0312345 --network=site-app-network --name=site-mysql mysql:5.7.24

winpty docker exec -it site-mysql bash 
mysql -u root -pPass0312345

CREATE USER 'mysql'@'localhost' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON * . * TO 'mysql'@'localhost';
FLUSH PRIVILEGES;

cd /var/www/app/
chmod -R 755 *


Сайт, в плане PHP работает - выводит информацию.
БД работает. Логин/пароль верный.
Но сайт не видит БД.
Такое ощущение, что БД исчезает после нового запуска/размонтирования.

Почему приложение не видит БД? Как это исправить?
PS
Разницу между
  • Вопрос задан
  • 374 просмотра
Решения вопроса 1
karabanov
@karabanov Куратор тега Docker
Системный администратор
Но сайт не видит БД.

Небось в конфиге указан localhost в качестве хоста MySQL, но у каждого контейнера свой отдельный localhost и подключаться к нему бессмысленно. Если это так, то надо указать в конфиге имя контейнера с базой.

Такое ощущение, что БД исчезает

Не исчезнет, так как ты сделал bind-mount в директорию на хоствой машине -v $(pwd)/.data/mysql:/var/lib/mysql
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы