Dockerfile でのデータベースのセットアップとダンプのインポート
Docker 環境では、MySQL の構成やデータベース ダンプのインポート中に問題が発生するのが一般的です。ビルドプロセス。これらの問題を解決するには、次のアプローチを検討してください。
公式の MySQL Docker イメージには、起動時にデータをインポートできる機能が含まれています。これにより、Dockerfile 内で手動でデータベースを作成したり、ダンプをインポートしたりする手順が不要になります。これを実装するには、次のような docker-compose.yml ファイルを作成します。
data: build: docker/data/. mysql: image: mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: 1234 volumes: - ./docker/data:/docker-entrypoint-initdb.d volumes_from: - data
この構成では、data-dump.sql ファイルは docker/data ディレクトリに配置される必要があります。ボリューム マッピングにより、/docker-entrypoint-initdb.d のコンテナ内でアクセスできるようになります。
舞台裏で、MySQL Docker イメージ内の docker-entrypoint.sh スクリプトには、SQL を自動的に実行するコード ブロックが含まれています。 /docker-entrypoint-initdb.d にあるファイル:
for f in /docker-entrypoint-initdb.d/*; do case "$f" in *.sh) echo "<pre class="brush:php;toolbar:false">FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
これにより、data-dump.sql が確実にファイルはコンテナの起動時に実行されます。
コンテナの再起動と削除後もデータの永続性を維持するには、別のデータ コンテナを作成することをお勧めします。このようなコンテナーの Dockerfile は、次のように単純にすることができます。
CMD ["true"] コマンドは、コンテナーの終了を防ぐために使用されます。データの永続性を確保するために、データ コンテナーが開始状態である必要はありません。
以上がDocker 環境内の MySQL にデータベース ダンプを効率的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。