> ## Documentation Index
> Fetch the complete documentation index at: https://tally.wharflab.com/llms.txt
> Use this file to discover all available pages before exploring further.

# hadolint/DL3025

> Use arguments JSON notation for CMD and ENTRYPOINT arguments.

Use arguments JSON notation for CMD and ENTRYPOINT arguments.

> **Superseded by [`buildkit/JSONArgsRecommended`](../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

```dockerfile theme={null}
FROM alpine
CMD my-program start
```

### Correct code

```dockerfile theme={null}
FROM alpine
CMD ["my-program", "start"]
```

## Reference

* [hadolint/DL3025](https://github.com/hadolint/hadolint/wiki/DL3025)
