0

我想在这个图像的顶部构建我的 dockerfile 。这是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

但我想用作我自己的 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 建立在它之上?

4

2 回答 2

4

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

CMD ["server.py"]

在你的 Dockerfile 中。

于 2020-08-24T15:17:35.557 回答
2

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

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

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

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

ENTRYPOINT []
于 2020-08-24T15:23:43.923 回答