CMD
最後の行として 次の Dockerfile があります
CMD ["/usr/local/myapp/bin/startup.sh", "docker"]
起動時に docker イメージに対して実行されるスクリプトの一部は次のとおりです。
# find directory of cacerts file in DOCKER_JAVA_HOME of container
DOCKER_CACERTS_DIR=$(dirname "$(docker run "$DOCKER_IMAGE_ID" find "$DOCKER_JAVA_HOME" -name cacerts)")
ただし、これでもCMD
Dockerfile の行が実行されます。
スクリプトの行を次のように変更することで、この動作を変更できることがわかりました。
# find directory of cacerts file in DOCKER_JAVA_HOME of container
DOCKER_CACERTS_DIR=$(dirname "$(docker run --entrypoint find "$DOCKER_IMAGE_ID" "$DOCKER_JAVA_HOME" -name cacerts)")
しかし、私はこれが必要だとは思いませんでした。コマンドCMD
でオーバーライドされたときに docker が実行するのは正常ですか? これは、フラグを使用せずに簡単にオーバーライドできるとdocker run
の使用の違いの 1 つになるはずだと思いました。CMD
ENTRYPOINT
CMD
--entrypoint
重要な場合、これはdockerバージョンを使用しています17.03.0-ce