В Dockerfile можно ли не переопределять CMD базового образа при реализации моего собственного CMD? - PullRequest
0 голосов
/ 17 июня 2020

Я обнаружил, что если я реализую свой собственный CMD, когда я запускаю контейнер с моим производным изображением, я теряю все функции, предоставляемые базовым образом. В том числе, мой контейнер не продолжает работать, если я помещаю CMD в производный Dockerfile .... Как повторно использовать те же ENTRYPOINT и CMD из базового образа, просто добавив больше команд? Я хочу это сделать, потому что хочу запускать определенные команды каждый раз, когда запускаю новый контейнер. (Звучит правильно?)

Пример: php: 7.4.7- apache

ENTRYPOINT ["docker - php -entrypoint"]

CMD ["apache2-foreground"]

https://github.com/docker-library/php/tree/b6fd2f70018163227f0f18f3ba1fa4d70e6d929e/7.4/buster/apache

1 Ответ

0 голосов
/ 18 июня 2020

Docker запускает только одну команду при запуске контейнера, и если у вас есть базовый образ и производный образ, он запустит команду из производного образа. Или, если вы переопределите команду при использовании команды docker run / другой команде в docker -compose, она будет иметь приоритет над командой, определенной внутри изображения.

Вы можете создать файл оболочки или любой исполняемый файл (например, python файл, если python доступен в контейнере) для выполнения любого количества команд и запуска этого файла во время запуска контейнера с использованием оболочки bash (или любой другой оболочки, доступной в контейнере).

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