Ответ
Если указан только ENTRYPOINT, контейнер всегда будет запускаться с этой командой. Аргументы по умолчанию отсутствуют, поэтому все аргументы для команды необходимо передавать явно при запуске.
Пример Dockerfile (exec-форма):
ENTRYPOINT ["curl", "-s"]
docker run my-image https://example.com→ выполнитсяcurl -s https://example.com. Аргументы командной строки добавляются к списку аргументовENTRYPOINT.
Важное отличие shell-формы:
ENTRYPOINT curl -s
В этом случае команда выполняется через /bin/sh -c. Это может изменить обработку сигналов и переменных окружения, но аргументы из docker run не будут переданы в curl. Для передачи аргументов в shell-форме нужно использовать "$@": ENTRYPOINT ["sh", "-c", "curl -s "$@"", "--"]. Рекомендуется всегда использовать exec-форму (в виде JSON-массива) для корректной передачи сигналов и аргументов.