Разница между CMD echo 'Hello world' и CMD ["echo", "Hello world"] в файле Docker? - PullRequest
0 голосов
/ 29 января 2019

Просто я хотел бы знать, есть ли какая-то разница между действиями:

CMD echo 'Hello world'

и

CMD ['echo', 'Hello World']

Я знаю, что оба будут печатать его на консоли,но если есть какая-то разница, когда использовать каждую опцию?

1 Ответ

0 голосов
/ 29 января 2019

В вашем простом примере нет большой разницы, но будет разница, если вам нужны функции оболочки, такие как подстановка переменных, например, $HOME.

Это форма оболочки.Он вызовет командную оболочку:

CMD echo 'Hello world'

Это форма exec.Он не вызывает командную оболочку:

CMD ["/usr/bin/echo", "Hello World"]

Форма exec анализируется как массив JSON, что означает, что вы должны использовать двойные кавычки вокруг слов, а не одинарные кавычки, и вы должны датьполный путь к исполняемому файлу.Форма exec является предпочтительным форматом CMD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...