Dockerfile: シームレスな MySQL セットアップとデータ インポート
Dockerfile のビルド中に MySQL をセットアップしてデータをインポートするのは大変かもしれませんが、そんなことはありませんそうでなければなりません。提供されている Dockerfile コード スニペットを使用して、開発者が直面する一般的なエラーに対処しましょう。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
この問題を解決する鍵は、公式の MySQL Docker イメージがどのように動作するかを理解することにあります。最新のイテレーションでは、イメージには起動時にデータをインポートできる機能が導入されています。この機能を利用するには、Dockerfile を次のように変更します。
# Mount the data volume for persistent MySQL data storage VOLUME ["/etc/mysql", "/var/lib/mysql"] # Import database dump during Docker image build ADD dump.sql /tmp/dump.sql RUN mysql -u root -e "CREATE DATABASE mydb" RUN mysql -u root mydb < /tmp/dump.sql # Start MySQL daemon CMD ["mysqld"]
最後に CMD ["mysqld"] 行を追加すると、Docker イメージはコンテナの作成時に MySQL デーモンを自動的に起動し、ビルドプロセス中のデータインポート用。
追加考慮事項
コンテナが停止または削除された場合でも MySQL データを永続化したい場合は、以下のような Dockerfile を使用して別のデータ コンテナを作成することを検討してください:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
このデータ コンテナにより、メインの MySQL コンテナが実行されていないときでも、MySQL データが確実に保持されます。
要約すると、公式のMySQL Docker イメージのデータ インポート機能と永続化のために別のデータ コンテナを採用することで、MySQL をセットアップし、Dockerfile ビルド内でシームレスにデータをインポートできます。
以上がMySQL をシームレスにセットアップし、Dockerfile ビルド内でデータをインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。