我在使用docker-compose导入.sql转储文件时遇到问题。我已经关注了文档,这些文档显然将从docker-entrypoint- initdb.d中加载.sql文件。但是,当我运行时docker-compose up,sql文件不会复制到容器中。
docker-compose up
我试过用-vfflag 停止容器,但这也不起作用。我的.yml脚本做错了吗?
-vf
我的撰写文件所在的根目录中的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中使用以下内容基于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
这样,转储始终被复制并在启动时运行