MySQL(およびPercona Serverなどのバリアント)は、Dockerハブページ 。
この手法を使用したDockerfileは次のようになります
FROM mysql:8
COPY seed-data.sql /docker-entrypoint-initdb.d/
注:ディレクトリの末尾のスラッシュは重要です。
docker run
を実行するとき このイメージでは、dockerがコンテナーdockerを作成します。 -entrypoint.sh
SQLスクリプトを実行すると、コンテナはデータを提供する準備が整います。
データは、コンテナの再起動(シードデータとその後の変更)を通じて保持されます。
コンテナを再利用して起動時間を短縮できます。その後のコンテナの起動では、データベースを初期化したり、データをシードしたりする必要はありません。元のデータが必要な場合は、コンテナを削除してdocker run
もう一度画像。
コンテナを削除するときは、dbデータを含むdockerボリュームを削除することを忘れないでください:docker rm -v $CONTAINER_NAME
。
このメソッドを使用して、標準データ を提供します 言語/フレームワークPOCおよびCI/CD用。新しいデータベースの初期化と大量のデータのシードには数分かかることがあるため、db接続が正常に確立されるまで、ロジックで自動操作を一時停止する必要があります。
これがあなたの途中で役立つことを願っています。