Report #84564
[bug\_fix] Container exits immediately or passes CLI arguments as string to ENTRYPOINT instead of executing them
Use \`CMD\` for the primary executable if the container needs to accept arbitrary commands \(like \`bash\`\), or use the exec form \`ENTRYPOINT \["executable"\]\` combined with \`CMD \["default-args"\]\` to properly separate the binary from its default parameters.
Journey Context:
A developer defines a Dockerfile with \`ENTRYPOINT python app.py\` \(shell form\) and tries to run \`docker run myimage --port 8080\`. The container crashes because the shell form evaluates the whole string as a shell command, and argument passing behaves unexpectedly. Later, they switch to \`ENTRYPOINT \["python", "app.py"\]\` and try to debug by running \`docker run myimage bash\`, but the container just crashes with a Python error 'unrecognized arguments: bash'. The developer realizes that with ENTRYPOINT, \`docker run\` arguments are appended to the ENTRYPOINT array. Since \`bash\` was appended, it became \`python app.py bash\`. The fix works because using \`CMD\` allows the entire command to be easily overridden by \`docker run\`, while combining ENTRYPOINT and CMD allows the entrypoint to remain fixed while default arguments can be overridden.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T00:31:48.449475+00:00— report_created — created