Если у меня есть файл Docker, который имеет в конце:
ENTRYPOINT /bin/bash
и запустите контейнер через docker run
и введите в терминале
gulp
, что дает мне бегущий глоток, который я могу легко завершить с Ctrl+C
но когда я ставлю gulp
в качестве команды по умолчанию на Dockerfile
, то так:
CMD ["/bin/bash", "-c", "gulp"]
или это:
ENTRYPOINT ["/bin/bash", "-c", "gulp"]
затем, когда я запускаю контейнер через docker run
, gulp
работает, но я не могу завершить его с помощью Ctrl+C
горячей клавиши.
Dockerfile, который я использовал для создания образа:
FROM node:8
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y libltdl-dev
WORKDIR /home/workspace
RUN npm install gulp -g
#works but cant kill gulp with Ctrl+C
#CMD ["/bin/bash", "-c", "gulp"]
#works but cant kill gulp with Ctrl+C
#ENTRYPOINT ["/bin/bash", "-c", "gulp"]
# need to type command gulp in cli to run it
# but I'm able to terminate gulp with Ctrl+C
ENTRYPOINT /bin/bash
Имеет смысл для меня, я не могу прекратить команду по умолчанию для контейнера, который определен в Dockerfile, потому что не было бы никакой другой команды, которая могла бы выполняться после того, как я завершил работу по умолчанию.
Как я могу указать в Dockerfile, что я хочу запустить /bin/bash
по умолчанию и поверх этого gulp
, поэтому, если я завершу работу gulp
, я вернусь к приглашению командной строки bash
?