当使用+ docker自动构建时,在sql转储中加载的最佳方式是什么?
已经忽略了docker-compose一段时间,并试图理解docker,它最初是自动构建的,但是我开始意识到,如果我想完成我的项目目标,即使用一个1命令,并且有一个完全工作的3站点Docker集群,那么我可能需要docker-compose。
1xHAProxy
3xUbuntu/wp
3xMysqld
在我的Dockerfile中,我只需要包含db.sql,就像
ADD db.sql /tmp/db.sql找不到最好的方法来加载我的DB,而不编写任何在构建之外的命令。
想知道如何使用Dockerfile或撰写解决方案
只需在mysql 下面使用从mysql中执行一个命令,就可以在将db.sql加载到mysql db wp时构建/运行 db.sql db.sql。
Dockerfile
$docker run -d user/repo:tagdocker-compose.yml
$docker-compose up如果完全走错了路,请给我一些参考资料。也可以提到,我计划使用CoreOS一旦我觉得好的码头。所以,如果CoreOS > Docker设置上的最佳实践是另一回事,请告诉我!
发布于 2016-01-17 23:30:39
有两个选项可用于在生成或运行时初始化SQL文件:
第一种方法是将MySQL映像建立在官方映像的基础上,并将您的SQL文件放在/docker-entrypoint-initdb.d中(在Dockerfile中使用类似于ADD my.sql /docker-entrypoint-initdb.d/的内容)。官方映像有一个相当复杂的入口点脚本(https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh),它启动MySQL、初始化用户名和密码,以及从/docker-entrypoint-initdb.d文件夹中初始化脚本。
另一种选择是在https://stackoverflow.com/a/25920875/684908中执行类似于答案的操作,只需添加一个命令,如:
COPY dump.sql /tmp/
RUN /bin/bash -c "/usr/bin/mysqld_safe &" && \
sleep 5 && \
mysql -u root -e "CREATE DATABASE mydb" && \
mysql -u root mydb < /tmp/dump.sqlhttps://stackoverflow.com/questions/34844317
复制相似问题