当拉docker镜像并在我自己的镜像中使用它时-它停在最后一行吗?

时间:2020-08-24 15:09:30

标签: python docker docker-image docker-pull

我想在此image的顶部构建我的dockerfile。它是ubuntu + python。 第三方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

但是我想用作我自己的dockerfile的基础:

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"]

问题:基本映像的dockerfile停在ENTRYpoint-但我不需要此入口点,我有自己的最后一个命令-'CMD python server.py'。

ENTRYPOINT是否会影响我自己的dockerfile?该基本dockerfile是否已执行并坐在python shell上等待?

编辑:换句话说,是否执行了该基本dockerfile?还是我只提取图像,并在其上面构建了自己的dockerfile?

2 个答案:

答案 0 :(得分:4)

您构建的Docker映像将继承基础映像的入口点,除非您对其进行更改。如果您对切入点感到满意,则无需执行任何操作。 CMD定义将哪些参数传递给入口点。如果您对基本入口点python3感到满意,则可以:

CMD ["server.py"]

在您的Dockerfile中。

答案 1 :(得分:2)

@paolo为您提供了使用基础映像中现有入口点的解决方案。

如果您对该入口点不满意,可以参考自己的入口

ENTRYPOINT ["my_script", "param1", "param2"]

或者甚至将其完全删除以仅使用CMD

ENTRYPOINT []