Report #65331
[bug\_fix] Container exits immediately or fails with 'executable file not found' when passing runtime arguments
Use the exec form \(JSON array\) for both ENTRYPOINT and CMD. Define the executable in ENTRYPOINT and default arguments in CMD: \`ENTRYPOINT \["python", "app.py"\]\` and \`CMD \["--help"\]\`. Do not mix shell form and exec form.
Journey Context:
A developer writes \`ENTRYPOINT python app.py\` and \`CMD --port 8080\` in their Dockerfile. When they run \`docker run myimage\`, it crashes or ignores the port flag. They debug by inspecting the process and see it's trying to run \`/bin/sh -c "python app.py" /bin/sh -c "--port 8080"\`, causing shell interpretation issues and argument concatenation failures. The shell form of ENTRYPOINT causes CMD to be passed as a completely separate sub-command or ignored entirely. Switching to the exec form \`ENTRYPOINT \["python", "app.py"\]\` and \`CMD \["--port", "8080"\]\` fixes it because exec form directly passes the CMD array elements as parameters to the ENTRYPOINT executable, bypassing the shell and preserving argument boundaries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T16:08:17.425889+00:00— report_created — created