有没有一种方法可以创建一个mysql docker镜像,附带卷并执行sql脚本?

f1tvaqid  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(231)

我正在尝试使用docker上的mysql映像,附加一个卷,此外,我想添加一个sql脚本,以便创建一个表(如果还没有)。因此,如果容器在另一台机器中使用,表将始终存在。
我的命令:

docker run-d-p 3306:3306--name my mysql--network sma-v/scripts:/docker-entrypoint-initdb.d/-v/myvolume/:/var/lib/mysql-e mysql\u root\u password=password-e mysql\u database=mydb mysql

我的情况是:我可以在运行期间使用-v选项(/myvolume/:/var/lib/mysql)附加卷,实际上我也可以在init目录(/docker-entrypoint-initdb.d/)中插入脚本,但是如果我做这两件事,只有附加卷才能工作。
我猜这就像脚本被执行一样(因为它被放在目录中),但是mysql被附加的卷覆盖了,所以我看到的只有myvolume中的内容。
有什么办法可以让它起作用吗?

jm81lzqq

jm81lzqq1#

我决定把它用在一个 Docker 的群里 docker stack deploy -c docker-compose.yml swarm_name .
在docker compose的服务定义中,我添加了命令行,以强制它执行init脚本。

command: --init-file /docker-entrypoint-initdb.d/initDb.sql

相关问题