docker-containers icon indicating copy to clipboard operation
docker-containers copied to clipboard

ENTRYPOINT was Replaced with CMD in mesos-slave Dockerfile

Open ser94mor opened this issue 8 years ago • 1 comments

Issue #80. Why ENTRYPOINT was replaced with CMD? In large clusters, many nodes will only have mesos-slave docker image on hosts. When docker containerizer is used, mesos-slave will start mesos-execute in a separate container and it will start your task in another container accordingly. Docker image for mesos-execute should be specified with --docker_mesos_image flag or MESOS_DOCKER_MESOS_IMAGE environment variable for mesos-slave. It is reasonable to set this flag/env. variable to mesos-slave docker image because you most probably want to pull lesser docker images for each host while setting up a dockerized Mesos cluster.

So, when mesos-slave container is started with --docker_mesos_image pointing to mesosphere/mesos-slave:<tag> image, it tries to start mesos-execute, specifying it as a command to docker container. But, since mesos-slave Dockerfile uses ENTRYPOINT command instead of CMD, mesos-execute container's start will fail (mesos-execute container will have the following command in this case: mesos-slave mesos-execute ...flags...). The use of CMD instead of ENTRYPOINT will fix the situation and entry command to mesos-execute container will be mesos-execute ...flags....

There is a possible concern: if somebody relied on the ENTRYPOINT declaration for mesos-slave and included someting like docker run ... mesosphere/mesos-slave:<tag> ...flags_for_mesos_slave... in his scripts, then he should update these scripts with docker run ... mesosphere/mesos-slave:<tag> mesos-slave ...flags_for_mesos_slave... (mesos-slave added immediately after image name).

I would prefer to have a CMD command to be able to reuse mesosphere/mesos-slave:<tag> for mesos-execute. What do you think?

ser94mor avatar Feb 27 '17 16:02 ser94mor

where's the mesosphere maintainers ?!

lhoss avatar Oct 13 '17 12:10 lhoss