Report #6570
[bug\_fix] CMD arguments are ignored when running the container, or container exits immediately without processing passed arguments.
Convert the \`ENTRYPOINT\` instruction from shell form \(\`ENTRYPOINT executable\`\) to exec form \(\`ENTRYPOINT \["executable"\]\`\). Shell form invokes \`/bin/sh -c\` which does not pass \`CMD\` arguments to the executable.
Journey Context:
A developer defines a Dockerfile with \`ENTRYPOINT python app.py\` and \`CMD \["--port", "8080"\]\`. When they run \`docker run myimage\`, the application starts but ignores the port argument, defaulting to its internal setting. They try overriding via \`docker run myimage --port 9090\`, but it still fails. They dive into Docker networking and application argument parsing, only to discover the root cause is Docker's \`ENTRYPOINT\`/\`CMD\` interaction. Because \`ENTRYPOINT\` is in shell form, Docker executes \`/bin/sh -c "python app.py"\`, and the shell completely discards the \`CMD\` arguments. Changing \`ENTRYPOINT\` to exec form \`ENTRYPOINT \["python", "app.py"\]\` ensures the executable is invoked directly by the OS, allowing \`CMD\` to be passed as arguments correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T00:22:22.216828+00:00— report_created — created