База и пользователь в Docker
База и пользователь приложения создаются при первом запуске пустого тома и не совпадают с root. Скрипт старта читает заданные имена и пароли и заводит отдельную учётку для программы.
Сервис db на mysql:9.7
получает пароль root,
имя базы app,
пользователя app
и его пароль demo:
services:
db:
image: mysql:9.7
environment:
MYSQL_ROOT_PASSWORD: demo
MYSQL_DATABASE: app
MYSQL_USER: app
MYSQL_PASSWORD: demo
Фоновый подъём проекта выполняют так:
docker compose up -d
Проверка идёт под пользователем приложения с выбором текущей базы:
docker compose exec db mysql -uapp -pdemo app -e "SELECT DATABASE()"
Это срабатывает только на пустом хранилище: если том уже содержал файлы базы, новые имена из описания не перезапишут старые учётки.
Задайте базу shop и пользователя shop с учебным паролем при первом старте на пустом томе.
Проверьте внутри сервиса, что текущая база совпадает с именем shop.