----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/41560/ -----------------------------------------------------------
(Updated Dec. 18, 2015, 2:55 p.m.) Review request for mesos, Benjamin Hindman, Artem Harutyunyan, Jie Yu, Joris Van Remoortere, and Timothy Chen. Changes ------- Incomplete manual testing of the docker in docker case. Bugs: MESOS-4137 https://issues.apache.org/jira/browse/MESOS-4137 Repository: mesos Description ------- This changes the FDs used by the `mesos-docker-executor` to inherit rather than open anew. In the `mesos-docker-executor`, we originally passed the log file path (i.e. `path::join(sandboxDirectory, "stdout")`) as an argument to `Docker::run`. In the executor's context, the log file is already open as `STDOUT_FILENO`. By inheriting the FD, the docker containerizer's logging-code will path mirrors that of the mesos containerizer. Diffs ----- src/docker/docker.hpp 33d6fb3e82ff7328ad093648a45546a18ec7b8cb src/docker/docker.cpp 5dc4667d93b143b54841d85606affe3e4926757a src/docker/executor.cpp 4042cec0acbe03d937ea3c53ffde745cbba552d2 src/slave/containerizer/docker.cpp 2d2dd4e0df36207c5f3cbb4fe2c50df51c0f3e9e src/tests/mesos.hpp 1c6acabab9d189a6d3cc8d63359053fd230377b8 Diff: https://reviews.apache.org/r/41560/diff/ Testing (updated) ------- make check (Centos7) sudo bin/mesos-tests.sh --gtest_filter="*ROOT_DOCKER_Logs*" --- [WIP] Manual test for launching an executor from an agent launched with `--docker_mesos_image=<something>` On Centos7, prepare the docker image: ``` make # Run the base Centos7 image with the build directory. # Make sure you copy/remember the CONTAINER_ID from the shell. sudo docker run -t -i centos:7 /bin/bash # Install some shared libraries. [root@<CONTAINER_ID> /]# yum install -y libevent zlib libcurl openssl cyrus-sasl cyrus-sasl-md5 apr subversion apr-util [root@<CONTAINER_ID> /]# yum install -y docker # We're done with edits. [root@<CONTAINER_ID> /]# exit sudo docker commit -m "Add Mesos runtime dependencies" -a "John Doe" <CONTAINER_ID> mesos/centos7:dev ``` --- Start the master: ``` # We don't really care where the master is. bin/mesos-master.sh --work_dir=/tmp/master --ip=127.0.0.1 ``` Start the agent inside a Docker container: ``` sudo docker run -t -v /home/vagrant/mesos/build:/home/vagrant/mesos/build --net=host -i mesos/centos7:dev /bin/bash [root@centos /]# cd /home/vagrant/mesos/build/ [root@centos /]# bin/mesos-slave.sh --master=127.0.0.1:5050 --containerizers=docker --docker_mesos_image="mesos/centos7:dev" --switch_user=false ``` Run our handy command-task spawning framework: ``` src/docker-no-executor-framework 127.0.0.1:5050 curl localhost:5050/master/state | python -m json.tool ``` Thanks, Joseph Wu