Add a new entrypoint to a docker image

Recently, we decided to move one of our services to docker container. The service is product of another company and they have provided us the docker image. However, we need to do some extra configuration steps in the container entrypoint.

The first thing I tried, was to create a DockerFile from the base image and then add commands to do the extra steps, like this:

  • How to run read command inside a Dockerfile?
  • Docker logging to container
  • Docker is not adding a network shared folder as a data volume
  • Configuring ELK with Kitematic - Elastic Search won't start - localhost not available
  • How can I map a volume in a running docker container?
  • Deployment methods for docker based micro services architecture on AWS
  • From baseimage:tag 
    RUN chmod a+w /path/to/entrypoint_creates_this_file
    

    But, it failed, because these extra steps must be run after running the base container entrypoint.

    Is there any way to extend entrypoint of a base image? if not, what is the correct way to do this?

    Thanks

  • How safe is to use docker in production? [closed]
  • Where can I create images from? Locally at all? (Docker remote API)
  • I thought I understood Docker until I saw the BusyBox docker image
  • docker stack/swarm golang port not exposed
  • Direct-LVM stops working after reboot
  • Ping docker containers on different hosts with ip addresses
  • 3 Solutions collect form web for “Add a new entrypoint to a docker image”

    I finally ended up calling the original entrypoint bash script in my new entrypoint bash script, before doing other extra configuration steps.

    create your custom entry-point file

    -> add this to image

    -> specify this as your entrypoint file

    FROM image:base
    
    COPY /path/to/my-entry-point.sh /my-entry-point.sh
    // do sth here
    
    ENTRYPOINT ["/my-entry-point.sh"]
    

    You do not need to even create a new Dockerfile. To modify the entrypoint you can just run the image using the command such as below:

    docker run --entrypoint new-entry-point-cmd baseimage:tag <optional-args-to-entrypoint>

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.