2017-08-08 6 views
0

公式mysql docker imageを使用して、初期化されたデータベースとインポートされたダンプファイルで新しいイメージを作成します。デフォルトのコマンドはmysqldなので、私はこれをどのように達成できるのだろうかと思います。 mysqlデーモンを起動せずにデータベースを初期化してダンプをインポートする方法はありますか?初期化されたデータベースでドッカーイメージを作成するには

答えて

0

オプションあなたからのダンプファイルをコピーするdocker cpを使用することができます(あなたのダンプファイルをインポートし、(「コンテナシェルアクセスとMySQLのログを表示する」https://hub.docker.com/_/mysql/にセクションを参照してください)ドッキングウィンドウコンテナのbashシェルにアクセスすることですホストシステムをドッキングコンテナに接続します)、完了したらdocker commitコマンドを使用して、現在実行中のコンテナから新しいドッカーイメージを作成できます。その後、新しく作成したイメージを使用することができます。

これが役に立ちます。

+0

私はまだプロセスが気に入らなくても、これはうまくいきます。私が見る限り、これを自動化することはできません。 – smiggle

+0

同じ手順を言及できるドッカーファイルを作成することもできます。ドッカーファイルからドッカー画像を作成することもできます。 –

1

MySQLドッカーの画像は、初めて起動時に/docker-entrypoint-initdb.dディレクトリから.sh.sql.sql.gzを自動的に解析します。ファイルはアルファベット順に実行されます。

その後、追加して、あなたのDockerfileを編集し、ファイルへの既存のデータベースをダンプします。

ADD mysqldump.sql /docker-entrypoint-initdb.d/mysqldump.sql 

最初のスタートでは、mysqldump.sqlがインポートされます。

0

私はちょうどmysql:5.7の解決策を見つけました。私は、ビルドプロセス中にわずかentrypoint.shに変更を実行します。docker-entrypoint.sh

COPY ./docker-entrypoint.sh/
RUN /docker-entrypoint.sh mysqld 

は私が最後の行を削除:

exec "[email protected] 

それは醜いが、それは今のところ動作します。

関連する問題