Самый простой способ - использовать официальный образ докера MySQL , который имеет правильную точку входа и управляет сложной задачей, такой как установка начального пароля и тупой базы данных при загрузке или во время сборки, если вы расширяете базовый образ.
Вам просто нужно использовать ниже docker-compose и сопоставить файл БД с /docker-entrypoint-initdb.d.
# Use root/example as user/password credentials
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
В настоящее время это поддерживается только для MYSQL_ROOT_PASSWORD, MYSQL_ROOT_HOST, MYSQL_DATABASE, MYSQL_USER, and MYSQL_PASSWORD.
Инициализация свежего экземпляра
Когда контейнер запускается в первый раз, будет создана новая база данных с указанным именем и инициализирована с помощью предоставленных переменных конфигурации. Кроме того, он будет выполнять файлы с расширениями .sh, .sql and .sql.gz
, которые находятся в /docker-entrypoint-initdb.d
. Файлы будут выполнены в алфавитном порядке. Вы можете легко заполнить ваши службы mysql, смонтировав дамп SQL в этот каталог и предоставив пользовательские изображения с предоставленными данными. Файлы SQL будут импортированы по умолчанию в базу данных, указанную в переменной MYSQL_DATABASE
.