ENTRYPOINT was Replaced with CMD in mesos-slave Dockerfile #84
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 orMESOS_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 tomesosphere/mesos-slave:<tag>
image, it tries to start mesos-execute, specifying it as a command to docker container. But, sincemesos-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 bemesos-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 withdocker 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?