Search code examples
dockerdockerfiledocker-build

dockerfile: how use CMD or ENTRYPOINT from base image


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.


Solution

  • 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