Report #1240
[bug\_fix] Container ignores SIGTERM, takes 10 seconds to stop, or CMD args are not passed to ENTRYPOINT
Use the JSON/exec form for ENTRYPOINT and CMD: ENTRYPOINT \["executable", "param1"\] and CMD \["param2"\]. Shell form runs the command under /bin/sh -c, making the shell PID 1 and swallowing Unix signals; it also prevents CMD args from being appended as extra arguments to ENTRYPOINT.
Journey Context:
Our Python container had ENTRYPOINT python app.py and CMD --verbose. When we ran docker stop, it always timed out after 10s. We also noticed --verbose was ignored. We inspected with docker inspect and saw the actual command was '/bin/sh -c python app.py' with CMD appended separately. The shell form meant PID 1 was sh, which does not forward SIGTERM to python, and the CMD value was not passed as an argument. Switching to ENTRYPOINT \["python", "app.py"\] and CMD \["--verbose"\] fixed both graceful shutdown and argument passing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T19:54:26.368676+00:00— report_created — created