Tôi đã gặp vấn đề tương tự này khi tôi muốn khởi tạo giản đồ của bản sao MySQL Docker của mình, nhưng tôi gặp khó khăn trong việc làm cho điều này hoạt động sau khi thực hiện một số Googling và làm theo các ví dụ của người khác. Đây là cách tôi đã giải quyết nó.
1) Kết xuất lược đồ MySQL của bạn vào một tệp.
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
2) Sử dụng lệnh ADD để thêm tệp giản đồ của bạn vào /docker-entrypoint-initdb.d
trong vùng chứa Docker. docker-entrypoint.sh
tệp sẽ chạy bất kỳ tệp nào trong thư mục này kết thúc bằng ".sql"
chống lại cơ sở dữ liệu MySQL.
Dockerfile:
FROM mysql:5.7.15
MAINTAINER me
ENV MYSQL_DATABASE=<schema_name> \
MYSQL_ROOT_PASSWORD=<password>
ADD schema.sql /docker-entrypoint-initdb.d
EXPOSE 3306
3) Khởi động phiên bản Docker MySQL.
docker-compose build
docker-compose up
Cảm ơn Thiết lập MySQL và nhập kết xuất bên trong Dockerfile để gợi ý cho tôi về docker-entrypoint.sh và thực tế là nó chạy cả tập lệnh SQL và shell!