Skip to content

hadolint/DL3025

Use arguments JSON notation for CMD and ENTRYPOINT arguments.

Superseded by buildkit/JSONArgsRecommended, which provides the same check with auto-fix support.

Description

ENTRYPOINT and CMD instructions should use the JSON (exec) form to ensure proper OS signal handling. Shell form runs commands as a child process of /bin/sh, which doesn't pass signals like SIGTERM.

Examples

Problematic code

FROM alpine
CMD my-program start

Correct code

FROM alpine
CMD ["my-program", "start"]

Reference