私のアプリに必要なスキームがすでに含まれているmysqlの上にdockerイメージを作成したいと思います。
スキームをsqlファイルとしてインポートする行をDockerfileに追加しようとしました。私はそのようにしました(私の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ドッカーイメージにはmysqlクライアントが含まれていないため、これは機能しませんでした(ベストプラクティスでは、「持っていると便利だからといって追加しないでください」)(これは間違っていますか?)
これを行うための良い方法は何でしょうか?私はいくつかのことを念頭に置いていましたが、それらはすべて厄介な回避策のように見えます。
- mysqlクライアントをインストールし、私がしなければならないことをしてから、それを削除/パージします。
- mysqlクライアントバイナリをイメージにコピーし、必要な処理を行ってから削除します。
- 別のSQLサーバーでスキーマを作成し、dbファイル自体を直接コピーします(これは非常に面倒で、汚染された問題のプールのように聞こえます)
助言がありますか?後ほど簡単に維持でき、おそらくベストプラクティスにも準拠する方法で願っています。