Report #39364
[bug\_fix] CMD arguments are appended to ENTRYPOINT instead of replacing it, causing crashes
Understand that CMD is passed as arguments to ENTRYPOINT. To override the executable entirely at runtime, use \`docker run --entrypoint \`. To pass arguments to the existing entrypoint, just append them to \`docker run\`.
Journey Context:
A developer defines \`ENTRYPOINT \["python", "app.py"\]\` and \`CMD \["--help"\]\` in their Dockerfile. They try to run \`docker run myimage --version\` expecting it to run \`python --version\`. Instead, the container runs \`python app.py --version\` and the app crashes with an unrecognized argument error. The developer is confused about why CMD isn't replacing ENTRYPOINT. They read the Docker documentation and realize the fundamental interaction: when both are defined, CMD is strictly appended as parameters to ENTRYPOINT. To achieve their goal of running a different executable, they must use the \`--entrypoint\` flag in the docker run command: \`docker run --entrypoint python myimage --version\`. They update their mental model and scripts to use \`--entrypoint\` for runtime executable overrides.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:32:39.419339+00:00— report_created — created