暂时忽略 docker-compose 并尝试了解docker及其自动构建,但我们已经意识到我可能需要 docker-compose ,如果我想完成我的项目目标,即使用一个1命令,并且从中有一个完全正常工作的3站点 Docker群集
1xHAProxy
3xUbuntu / WP
3xMysqld
在我的Dockerfile中,我可以在我的Github repo中包含db.sql,如
ADD db.sql /tmp/db.sql
如果没有在构建之外编写任何命令而无法加载我的数据库,那么找不到最佳实践。
只需执行mysql FROM mysql下面的命令之一 ADD db.sql db.sql应该在将db.sql加载到mysql时构建/运行db wp
的 Dockerfile
$docker run -d user/repo:tag
搬运工-compose.yml
$docker-compose up
如果我完全走错了路,请给我一些参考。还可以提一下,一旦我对Docker感觉良好,我计划使用CoreOS。因此,如果CoreOS上的最佳实践> Docker设置是别的,让我知道!
答案 0 :(得分:1)
在构建或运行时初始化SQL文件有两个选项:
第一种方法是将MySQL图像基于官方图像,并将SQL文件放在myImageView
中(使用/docker-entrypoint-initdb.d
中的ADD my.sql /docker-entrypoint-initdb.d/
)。官方图像有一个相当复杂的入口点脚本(https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh),它启动MySQL,初始化用户名和密码,以及Dockerfile
文件夹中的脚本。
另一种选择是在https://stackoverflow.com/a/25920875/684908做一些类似答案的事情,只需添加如下命令:
/docker-entrypoint-initdb.d