> On April 5, 2016, 2:25 p.m., Gilbert Song wrote:
> > src/cli/execute.cpp, line 152
> > <https://reviews.apache.org/r/45731/diff/1/?file=1325657#file1325657line152>
> >
> >     Should we mention that an image has to be provided && for mesos 
> > containerizer only?
> 
> Avinash sridharan wrote:
>     Why do we need an image for this? Also, the `name` field is used to 
> configure user-defined networks for `DockerContainerizer` as well 
> (MESOS-4369).

Agree with Avinash, a container without image can also join the specified 
networks. However Gilbert's comment reveals some potential issues in 
`mesos-execute`.

The currently logic 
(https://github.com/apache/mesos/blob/0.28.0/src/cli/execute.cpp#L233:L263) in 
`mesos-execute` to launch task is:
1. Check if `--docker_image` is specified.
2. If it is specfied, then construct `ContainerInfo` based on `--containerizer` 
which can be `mesos` or `docker`.

The problems I see with this logic are:
1. If `--docker_image` is not specified, then we will NOT construct 
`ContainerInfo` at all. This will not be correct when we introduce this 
`--networks` flag, because `mesos-execute` should be able to launch a container 
joins some networks but without an image.
2. If `--docker_image` is not specified and `--containerizer` is `docker`, then 
the result is we will launch a task with `MesosContainerizer` which is not 
expected since what user specifies is `DockerContainerizer`. And if 
`MesosContainerizer` is not enabled in agent (e.g., start agent with 
`--containerizers=docker`), then the container will be failed to create with an 
error like: `None of the enabled containerizers (docker) could create a 
container for the provided TaskInfo/ExecutorInfo message`. So I think in this 
case, we should guard it in `mesos-execute` rather than leaving it to agent, 
i.e., `mesos-execute` should exit with an error message to let user know if 
s/he choose `--containerizer=docker`, then s/he must specify `--docker_image` 
as well.

To resolve the above issues, I have updated the patch with a new logic, please 
review it and let me know for any comments.


- Qian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/45731/#review127043
-----------------------------------------------------------


On April 5, 2016, 1:39 p.m., Qian Zhang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/45731/
> -----------------------------------------------------------
> 
> (Updated April 5, 2016, 1:39 p.m.)
> 
> 
> Review request for mesos, Avinash sridharan and Jie Yu.
> 
> 
> Bugs: MESOS-5117
>     https://issues.apache.org/jira/browse/MESOS-5117
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Introduced '--networks' flag to mesos-execute.
> 
> 
> Diffs
> -----
> 
>   src/cli/execute.cpp af62f41622e1c43acd8f257c54f8754162c433b8 
> 
> Diff: https://reviews.apache.org/r/45731/diff/
> 
> 
> Testing
> -------
> 
> Ran the following command:
>   `sudo src/mesos-execute --master=192.168.122.171:5050 --name=test 
> --docker_image=library/busybox --command="sleep 30" --shell=true 
> --networks=net1,net2`
> 
> The created container successfully joined the CNI networks `net1` and `net2`.
> 
> 
> Thanks,
> 
> Qian Zhang
> 
>

Reply via email to