我在使用 docker-compose 导入 .sql 转储文件时遇到问题。我已经关注了文档,这显然会从 docker-entrypoint-initdb.d 加载 .sql 文件。但是,当我运行 docker-compose up
时,不会将 sql 文件复制到容器中。
我试过用 -vf
标志停止容器,但这也不起作用。我在我的 .yml 脚本中做错了吗?
我的 compose 文件所在的根目录中的 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
原文由 GafferG 发布,翻译遵循 CC BY-SA 4.0 许可协议
经过多次尝试音量设置后,我找到了一种解决方法
我在 Dockerfile 中使用以下内容创建了另一个基于 mysql 的图像
然后从 compose 中删除卷并运行新图像
这样转储总是被复制并在启动时运行