dockerfile: how use CMD or ENTRYPOINT from base image

Dave C picture Dave C · Apr 5, 2017 · Viewed 11.9k times · Source

I have several base docker images which are not owned by me (so I cannot modify them). However, I'm creating new images from them with additional things installed.

What I can't figure out is how to tell dockerfile to copy the CMD (or ENTRYPOINT) of the base image. Something like this:

FROM other:latest
RUN my-extra-install
CMD <use-the-CMD-from-base-image>

I don't think there's any direct syntax for the CMD command to do what I want. I'm wondering if there's a workaround.

Answer

Vor picture Vor · Apr 5, 2017

If you left it blank in your new Dockerfile, it will inherit the one from the base image.

For example:

base

FROM ubuntu
CMD ["echo", "AAA"]

layer1

FROM base

If you build above images and run layer1 you will get the following:

$ sudo docker run -it layer1
AAA