我在使用docker-compose导入.sql转储文件时遇到问题.我已经关注了文档,显然它将从docker-entrypoint-initdb.d加载.sql文件.但是,当我运行docker-compose时,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中使用以下内容创建了另一个基于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
这样,转储总是被复制并在启动时运行