タイトルの通りなんですけども、ちょっとハマったので書き残しておこうかなと思いました。
ってか、ドキュメントにガッツリ書いてあるんですけどね。読めよって話ですよね。。
Note: Setting entrypoint both overrides any default entrypoint set on the service’s image with the ENTRYPOINT Dockerfile instruction, and clears out any default command on the image - meaning that if there’s a CMD instruction in the Dockerfile, it is ignored.
google翻訳さん
注:entrypointを設定すると、ENTRYPOINT Dockerfile命令を使用してサービスのイメージに設定されているデフォルトのエントリポイントが上書きされ、イメージのデフォルトコマンドが消去されます。DockerfileにCMD命令がある場合は無視されます。
ハマったケース
DBの起動を待ってからWebサーバーを起動しようと思って dockerize を使ってたのですけども、このdockerizeのコマンドを docker-compose.yml の entrypoint
に書いてた訳です。
コンテナに直截入って叩けば起動するし、docker-compose.ymlのcommandに書いても起動するし、なんなんだよーって思って調べたら公式の注意書きに書いてありました。。
まとめ
何か壁にぶち当たったら、まずは公式ドキュメント読みましょう。。