datadir フラグを指定して mysql 5.7 イメージを実行し、CMD に bash スクリプトを含めてみます。
最終的にコンテナが実行され、data for mysql; sh db_translations.sh というフォルダーが作成されます。なぜこれが起こっているのかわかりますか?
data for mysql; sh db_translations.sh
多くのコンテナは bash /sh を ENTRYPOINT として扱い、これは機能しますが、mysql コンテナの場合、 >ENTRYPOINT すでにスクリプトになっており、提供された CMD のみを受け入れ、スクリプト形式で を再評価しません。
bash
sh
ENTRYPOINT
>ENTRYPOINT
CMD
を再評価しません。
/docker-entrypoint-initdb.d を使用することを参照してください (https://hub.docker.com/_/mysql)。ただし、必要な場合もあります。スクリプトと環境を再編成しました。
を使用することを参照してください (
多くのコンテナは
各ドキュメントのスクリプトの場所としてbash
/sh
をENTRYPOINT
として扱い、これは機能しますが、mysql コンテナの場合、>ENTRYPOINT
すでにスクリプトになっており、提供されたCMD
のみを受け入れ、スクリプト形式でを再評価しません。
/docker-entrypoint-initdb.d
を使用することを参照してください (
https://hub.docker.com/_/mysql)。ただし、必要な場合もあります。スクリプトと環境を再編成しました。