ホームページ >データベース >mysql チュートリアル >MySQL をシームレスにセットアップし、Dockerfile ビルド内でデータをインポートするにはどうすればよいですか?

MySQL をシームレスにセットアップし、Dockerfile ビルド内でデータをインポートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-18 11:45:10832ブラウズ

How Can I Seamlessly Set Up MySQL and Import Data Within My Dockerfile Build?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。