我正在尝试在docker上使用MySQL映像,附加一个卷,此外,我想添加一个sql脚本以创建表(如果尚不存在)。 因此,如果该容器在另一台机器上使用,则该表将始终存在。
我的命令:
我的情况: 我可以在运行期间使用-v选项(/ myvolume /:/ var / lib / mysql)附加卷,实际上,我还可以将脚本插入init目录(/docker-entrypoint-initdb.d /),但是如果我做这两件事,则只有卷连接有效。
我想这就像脚本被执行了一样(因为它被放置在目录中),但是MySQL被卷附加所覆盖,所以我唯一看到的就是myvolume中存在的内容。
有某种方法可以使它起作用?
答案 0 :(得分:1)
我决定在docker-compose中将其与docker stack deploy -c docker-compose.yml swarm_name
一起使用。
在docker-compose的服务定义中,我添加了命令行以强制其执行init脚本。
command: --init-file /docker-entrypoint-initdb.d/initDb.sql