Report #79250
[bug\_fix] Docker container exits immediately or arguments passed via docker run are ignored, resulting in unexpected command execution
Use the exec form for ENTRYPOINT \(e.g., ENTRYPOINT \["python", "app.py"\]\) and CMD for default arguments \(e.g., CMD \["--help"\]\), or ensure a shell-form ENTRYPOINT script explicitly executes exec "$@" to pass control to CMD or runtime arguments.
Journey Context:
A developer writes a Dockerfile with ENTRYPOINT python app.py and CMD \["--port", "8080"\]. When running the container, the port argument is completely ignored, and the app defaults to port 5000. They try overriding it with docker run myimage --port 8080, but it fails with 'executable file not found'. The rabbit hole involves reading Docker documentation on shell vs exec form. Shell form \(ENTRYPOINT python app.py\) runs as a child process of /bin/sh -c, which completely ignores CMD and runtime arguments. To fix it, they switch to exec form ENTRYPOINT \["python", "app.py"\] and CMD \["--port", "8080"\], which properly merges them, or they write an entrypoint.sh script that ends with exec "$@" to hand off execution to the arguments.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T15:37:08.304437+00:00— report_created — created