如果我有一个最后的 Docker 文件:
ENTRYPOINT /bin/bash
docker run
并通过终端运行容器并输入
gulp
这让我可以运行 gulp,我可以很容易地终止Ctrl+C
但是当我以这种方式gulp
作为默认命令时:Dockerfile
CMD ["/bin/bash", "-c", "gulp"]
或这个:
ENTRYPOINT ["/bin/bash", "-c", "gulp"]
docker run
然后当我通过is running运行容器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
命令行提示符?