Почему формат CMD в Dockerfile выглядит как список команд? - PullRequest
0 голосов
/ 18 октября 2019

В нескольких примерах Dockferfile я вижу странный формат команды:

CMD [ "django-admin", "startproject hello_world_django" ]

CMD [ "python", "manage.py runserver 0.0.0.0:8000" ]

, но на своем собственном Dockerfile я сделал это, и он работал нормально:

CMD python manage.py runserver 0.0.0.0:8000

1 Ответ

1 голос
/ 18 октября 2019

Dockerfile Документы Состояние:

Инструкция CMD имеет три формы:

  • CMD ["исполняемый файл "," param1 "," param2 "] (exec form, это предпочтительный

  • CMD [" param1 "," param2 "] (по умолчаниюпараметры для ENTRYPOINT)

  • CMD команда param1 param2 (форма оболочки)

Если выиспользуйте форму оболочки CMD, затем она будет выполнена в / bin / sh -c:

FROM ubuntu CMD echo "This is a test." | wc

Если вы хотите запустить без оболочки, вы должны выразить командув виде массива JSON и задайте полный путь к исполняемому файлу. Этот формат массива является предпочтительным форматом CMD. Любые дополнительные параметры должны быть индивидуально выражены в виде строк в массиве:

FROM ubuntu CMD ["/usr/bin/wc","--help"]

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