我想在mysql映像之上创建一个docker映像,该映像已经包含我的应用程序所需的方案。
我尝试向Dockerfile添加行,这些行会将我的方案导入为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客户端(最佳做法是“不要仅仅因为它们会很舒服就添加东西”)(我对此是否错?)
这样做的好方法可能是什么?我已经想到了一些事情,但是它们似乎都是混乱的解决方法。
- 安装mysql客户端,做我必须做的事,然后删除/清除它。
- 将mysql客户端二进制文件复制到该映像,执行我必须做的,然后将其删除。
- 在另一台sql服务器中创建架构,然后直接直接复制db文件(这看起来很混乱,在我看来像是受污染的问题池)
有什么建议么?希望以一种易于稍后维护并且也可能符合最佳实践的方式吗?
另请参阅:如何在Docker容器中使用架构初始化MySQL数据库?
—
马丁·托马