Docker コンテナ内のスキーマを使用した MySQL データベースの初期化は、困難な場合があります。この問題に対処する解決策は次のとおりです:
1. MySQL スキーマのダンプ
次のコマンドを使用して、MySQL スキーマをファイルにダンプします。
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
2. Dockerfile へのスキーマ ファイルの追加
Dockerfile で、ADD コマンドを使用してスキーマ ファイルを /docker-entrypoint-initdb.d ディレクトリに追加します。コンテナ内の docker-entrypoint.sh スクリプトは、このディレクトリ内のすべての .sql ファイルをデータベースに対して実行します。
サンプル Dockerfile:
FROM mysql:5.7.15 MAINTAINER me ENV MYSQL_DATABASE=<schema_name> \ MYSQL_ROOT_PASSWORD=<password> ADD schema.sql /docker-entrypoint-initdb.d EXPOSE 3306
3. Docker コンテナのビルドと実行
Dockerfile を変更したら、コンテナをビルドして実行します。
docker-compose build docker-compose up
4.追加事項
これらの手順に従うことで、Docker コンテナ内のスキーマを使用して MySQL データベースを正常に初期化し、CMD が適切に実行されない問題を解決できます。
以上がDocker コンテナ内のスキーマを使用して MySQL データベースを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。