Docker撰写mysql导入.sql

我无法用docker-compose导入.sql转储文件。 我已经按照文档,这显然会从docker-entrypoint-initdb.d加载.sql文件。 但是,当我运行docker-compose up ,sql文件不会被复制到容器。

我已经尝试用-vf标志停止容器,但是这也不起作用。 我在我的.yml脚本中做错了什么?

我在我的撰写文件所在的目录database / db-dump /中有dump.sql。

 frontend: image: myimage ports: - "80:80" links: - mysql mysql: image: mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: dbuser MYSQL_PASSWORD: userpass MYSQL_DATABASE: myimage_db volumes: - ./database/db-dump:/docker-entrypoint-initdb.d 

经过多次尝试,我发现了一个解决方法

我在Dockerfile中创build了另一个基于mysql的图像

 FROM mysql:5.6 ADD dump.sql /docker-entrypoint-initdb.d 

然后从撰写中删除卷并运行新的图像

 frontend: image: myimage ports: - "80:80" links: - mysql mysql: image: mymysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: dbuser MYSQL_PASSWORD: userpass MYSQL_DATABASE: myimage_db 

这样转储总是被复制并在启动时运行

文档docker(Mysql): https : //hub.docker.com/_/mysql/ 在这里输入图像说明