Ошибки и коды · Инструкция
Docker Compose command переопределяет CMD: почему контейнер запускается не той командой
Образ может иметь рабочий CMD, который незаметно заменён Compose-файлом. В сочетании ENTRYPOINT и CMD итоговая argv зави
Короткий ответ
Поле Compose `command` переопределяет `CMD` образа, а `entrypoint` — его ENTRYPOINT. Если контейнер ведёт себя иначе, чем `docker run IMAGE` без аргументов, сравните итоговые command/entrypoint через `docker compose config` и `docker inspect`.
Что делать
- Проверьте образ: Посмотрите Config.Cmd и Config.Entrypoint через `docker image inspect`.
- Проверьте Compose: Найдите `command:` и `entrypoint:` и выведите `docker compose config`.
- Сравните запуск: Запустите образ без Compose и сравните поведение.
- Уберите лишний override: Удалите `command`/`entrypoint`, если нужен default образа, или задайте корректный exec/list формат.
- Пересоздайте: Compose должен создать новый контейнер с обновлённой командой.
Важно
Не меняйте entrypoint стороннего образа без понимания его init-логики и подготовки файлов.
Что учитывать
Не меняйте entrypoint стороннего образа без понимания его init-логики и подготовки файлов.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Dockerfile reference). Пример и формулировки — редакция N1RO на 2026-09-17.