我想在一个已经包含我的应用程序的必要scheme的mysql之上创build一个docker镜像。
我试图添加行到Dockerfile将导入我的scheme作为一个SQL文件。 我这样做(我的Dockerfile):
FROM mysql ENV MYSQL_ROOT_PASSWORD="bagabu" ENV MYSQL_DATABASE="imhere" ADD imhere.sql /tmp/imhere.sql RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql"
据我的理解,这是行不通的,因为mysql的docker镜像不包含mysql客户端(最佳做法状态“不要添加的东西,只是因为他们会很高兴”)(我错了吗?)
什么可能是一个很好的方法来做到这一点? 我有几件事情,但他们似乎都是凌乱的解决方法。
有什么build议么? 希望稍后可以很容易维护,也许符合最佳实践?
你应该把你的init脚本放在挂载为/docker-entrypoint-initdb.d的目录中 – 请参阅MySQL Docker映像文档中的“初始化新实例”部分。
像Ansible这样的pipe理软件可以帮助您轻松实现mysql的导入,而无需安装和重新安装客户端。 Ansible具有很好的内置function来pipe理docker图像和容器以及mysql数据库。