当拉取 docker 图像并在我自己的图像中使用它时 - 它会停在最后一行吗?
when pulling docker image and using it in my own image - does it stop at the last line?
我想在此 image 之上构建我的 docker 文件。是 ubuntu + python。
第 3 方 docker 文件:
FROM ubuntu:latest
MAINTAINER fnndsc "dev@babymri.org"
RUN apt-get update \
&& apt-get install -y python3-pip python3-dev \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python \
&& pip3 install --upgrade pip
ENTRYPOINT ["python3"] #this entry point line is my concern
但我想用作我自己的 docker 文件的基础:
FROM fnndsc/ubuntu-python3
RUN pip install enum34 llvmlite numba
RUN mkdir -p ./voice_flask/d
WORKDIR /voice_flask/d
COPY . /voice_flask/d
CMD ["python", "server.py"]
问题:基础映像的 docker 文件在入口点停止 - 但我不需要这个入口点,我有自己的最后一个命令 - 'CMD python server.py'.
那个 ENTRYPOINT 会影响我自己的 docker 文件吗?基础 docker 文件是否被执行并等待 python shell?
编辑:换句话说,是否执行了基础 docker 文件?或者我只是拉取图像,然后我自己的 docker 文件建立在它之上?
您构建的 Docker 映像将从基本映像继承入口点,除非您更改它。如果您对入口点感到满意,则无需执行任何操作。 CMD
定义将哪些参数传递给入口点。如果您对基本入口点 python3
感到满意,您可以:
CMD ["server.py"]
在您的 Docker 文件中。
@paolo 为您提供了使用基础映像中现有入口点的解决方案。
如果您对该入口点不满意,可以参考您自己的入口点
ENTRYPOINT ["my_script", "param1", "param2"]
甚至完全删除它以仅使用 CMD
ENTRYPOINT []
我想在此 image 之上构建我的 docker 文件。是 ubuntu + python。 第 3 方 docker 文件:
FROM ubuntu:latest
MAINTAINER fnndsc "dev@babymri.org"
RUN apt-get update \
&& apt-get install -y python3-pip python3-dev \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python \
&& pip3 install --upgrade pip
ENTRYPOINT ["python3"] #this entry point line is my concern
但我想用作我自己的 docker 文件的基础:
FROM fnndsc/ubuntu-python3
RUN pip install enum34 llvmlite numba
RUN mkdir -p ./voice_flask/d
WORKDIR /voice_flask/d
COPY . /voice_flask/d
CMD ["python", "server.py"]
问题:基础映像的 docker 文件在入口点停止 - 但我不需要这个入口点,我有自己的最后一个命令 - 'CMD python server.py'.
那个 ENTRYPOINT 会影响我自己的 docker 文件吗?基础 docker 文件是否被执行并等待 python shell?
编辑:换句话说,是否执行了基础 docker 文件?或者我只是拉取图像,然后我自己的 docker 文件建立在它之上?
您构建的 Docker 映像将从基本映像继承入口点,除非您更改它。如果您对入口点感到满意,则无需执行任何操作。 CMD
定义将哪些参数传递给入口点。如果您对基本入口点 python3
感到满意,您可以:
CMD ["server.py"]
在您的 Docker 文件中。
@paolo 为您提供了使用基础映像中现有入口点的解决方案。
如果您对该入口点不满意,可以参考您自己的入口点
ENTRYPOINT ["my_script", "param1", "param2"]
甚至完全删除它以仅使用 CMD
ENTRYPOINT []