Report #4425
[bug\_fix] Container ignores CMD, docker stop hangs, or PID 1 does not receive SIGTERM
Use the exec form of ENTRYPOINT: \`ENTRYPOINT \["executable", "param1"\]\`. If you need shell expansion, use a tiny wrapper script or combine exec form with an explicit \`exec\` in a shell script; do not rely on the shell form \`ENTRYPOINT command\` as PID 1.
Journey Context:
A developer sets \`ENTRYPOINT python app.py\` and \`CMD --verbose\` in their Dockerfile. When they run the image without arguments it works, but passing \`docker run myimage --help\` fails because \`--help\` is not appended. They also notice \`docker stop\` takes ten seconds and sends SIGKILL. They check \`docker top\` and see \`sh -c 'python app.py'\` as PID 1, with Python as a child process. They read the Dockerfile ENTRYPOINT docs and learn the shell form runs the command under \`/bin/sh -c\`, which swallows signals and ignores CMD when used as the default executable. They change to \`ENTRYPOINT \["python", "app.py"\]\` and \`CMD \["--verbose"\]\`, making Python PID 1 directly. Arguments now append correctly, and \`docker stop\` terminates cleanly in under a second.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T19:28:33.944654+00:00— report_created — created