Да, именно так вы должны смонтировать файлы .sql или .sh, т.е. добавить том, сопоставив файлы SQL или sh с папкой док-контейнера docker-entrypoint-initdb.d
.Но это вызывает ошибку по какой-то странной причине, может быть потому, что версия докера MySQL устарела.
Вы можете решить эту проблему, создав собственный образ, т. Е.
Dockerfile
FROM mysql:5.7
COPY init.sql /docker-entrypoint-initdb.d/
Создает изображение, а также помогает запустить сценарий инициализации при запуске контейнера.
Чтобы использовать его в файле compose, поместите файлы SQL и файл Dockerfile в папку.
database
|---init.sql
|---Dockerfile
docker-compse.yml
version: '3'
services:
mysqldb:
image: mysqldb
build: ./database
container_name: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=test
- MYSQL_PASSWORD=root
- MYSQL_DATABASE=test
Таким образом, вы можете легко настроить переменные среды.