Hi Olivier, I touched on this issue as part of https://issues.apache.org/jira/browse/MESOS-5229. It would be nice if Mesos automatically created container mount points if they don't already exist. In the meantime, as a workaround for this, I've updated my filesystem images to include the path (e.g. in Dockerfile, add `RUN mkdir -p /some/mount/point`). Not the best solution, but the only thing I've seen that works at the moment.
Cheers, Joshua On Wed, May 18, 2016 at 7:36 AM, Guangya Liu <[email protected]> wrote: > It's pretty simple for you from scratch with source code > > https://github.com/apache/mesos/blob/master/docs/getting-started.md#building-mesos > ;-) > > Thanks, > > Guangya > > On Wed, May 18, 2016 at 8:30 PM, Olivier Sallou <[email protected]> > wrote: > > > > > > > On 05/18/2016 02:31 PM, Guangya Liu wrote: > > > Just saw that you are working with 0.28.1, the "docker volume driver" > > code > > > was not in 0.28.1, can you please have a try with mesos master branch > if > > > you are only doing some test? > > this is indeed test only for the moment. But I will have to > > recompile/install mesos :-( (I used packages for install). > > > > I will try when possible, but thanks for the hint. > > > > > > Thanks, > > > > > > Guangya > > > > > > On Wed, May 18, 2016 at 8:28 PM, Guangya Liu <[email protected]> > wrote: > > > > > >> Hi Olivier, > > >> > > >> I think that you need to enable "docker volume isolator" if you want > use > > >> external storage with unified container I was writing a document here > > >> https://reviews.apache.org/r/47511/, perhaps you can have a try > > according > > >> to the document and post some comments there if you find any issues. > > >> > > >> Also you can patch mesos-execute here > > https://reviews.apache.org/r/46762/ to > > >> have a try with mesos-execute. > > >> > > >> Thanks, > > >> > > >> Guangya > > >> > > >> On Wed, May 18, 2016 at 7:17 PM, Olivier Sallou < > > [email protected]> > > >> wrote: > > >> > > >>> Answering (partially) to myself. > > >>> > > >>> I seems issue is container_path does not exists inside container. On > > >>> Docker, path is created and mounted. With pure mesos, container_path > > >>> must exists. > > >>> > > >>> mesos.proto says: "If the path is an absolute path, that path must > > >>> already exist." > > >>> > > >>> This is an issue however, using Docker images, the path I want to > mount > > >>> does not exists, and it cannot be modified "on the fly". > > >>> > > >>> Is there a workaround for this ? > > >>> > > >>> > > >>> On 05/18/2016 12:24 PM, Olivier Sallou wrote: > > >>>> Hi, > > >>>> I am trying unified containerizer on a single server (master/slave) > on > > >>>> mesos 0.28.1, to switch from docker containerizer to mesos+docker > > image > > >>>> container. > > >>>> > > >>>> I have setup slave config as suggested in documentation: > > >>>> > > >>>> containerizers=docker,mesos > > >>>> image_providers=docker \ > > >>>> isolation=filesystem/linux,docker/runtime > > >>>> > > >>>> However, when I execute my task with a volume I have an error: > > >>>> > > >>>> .... > > >>>> + mount -n --rbind > > >>>> > > >>> > > > /tmp/mesos/provisioner/containers/2d7ea311-5e8b-440f-a3ca-a40e1b946b8e/backends/copy/rootfses/f9f66bb2-308d-4555-ba77-49ec61cbeb4f > > >>> > > > /tmp/mesos/slaves/2a296daf-7419-4659-ade1-763c792cd522-S0/frameworks/aef1b0e3-ea2d-4770-baac-96d673ab88f9-0000/executors/51/runs/2d7ea311-5e8b-440f-a3ca-a40e1b946b8e/.rootfs > > >>>> + mount -n --rbind > > >>>> > > >>> > > > /home/osallou/Development/NOSAVE/go-docker/godshared/tasks/pairtree_root/us/er/_o/sa/ll/ou/task > > >>> > > > /tmp/mesos/slaves/2a296daf-7419-4659-ade1-763c792cd522-S0/frameworks/aef1b0e3-ea2d-4770-baac-96d673ab88f9-0000/executors/51/runs/2d7ea311-5e8b-440f-a3ca-a40e1b946b8e/.rootfs/mnt/god-data > > >>>> mount: mount point > > >>>> > > >>> > > > /tmp/mesos/slaves/2a296daf-7419-4659-ade1-763c792cd522-S0/frameworks/aef1b0e3-ea2d-4770-baac-96d673ab88f9-0000/executors/51/runs/2d7ea311-5e8b-440f-a3ca-a40e1b946b8e/.rootfs/mnt/god-data > > >>>> does not exist > > >>>> Failed to execute a preparation shell command > > >>>> > > >>>> Then, my task switches to FAILED. > > >>>> > > >>>> I define a local volume to bind mount in my "container" > > >>>> > > >>> > > > /home/osallou/Development/NOSAVE/go-docker/godshared/tasks/pairtree_root/us/er/_o/sa/ll/ou/task > > >>>> => /mnt/god-data > > >>>> My directory exists on local server. > > >>>> In mesos UI, I can see the .rootfs directory along stdout and stderr > > >>>> files, and inside .rootfs, I can see /mnt/god-data (empty). > > >>>> > > >>>> Running the same using Docker containerizer instead of mesos > > >>>> containerizer (with a Docker image) works fine. > > >>>> > > >>>> It seems it fails to mount my local directory in the container. Any > > idea > > >>>> of what is going wrong or how to debug this? > > >>>> > > >>>> > > >>>> Thanks > > >>>> > > >>> -- > > >>> Olivier Sallou > > >>> IRISA / University of Rennes 1 > > >>> Campus de Beaulieu, 35000 RENNES - FRANCE > > >>> Tel: 02.99.84.71.95 > > >>> > > >>> gpg key id: 4096R/326D8438 (keyring.debian.org) > > >>> Key fingerprint = 5FB4 6F83 D3B9 5204 6335 D26D 78DC 68DB 326D 8438 > > >>> > > >>> > > > > -- > > Olivier Sallou > > IRISA / University of Rennes 1 > > Campus de Beaulieu, 35000 RENNES - FRANCE > > Tel: 02.99.84.71.95 > > > > gpg key id: 4096R/326D8438 (keyring.debian.org) > > Key fingerprint = 5FB4 6F83 D3B9 5204 6335 D26D 78DC 68DB 326D 8438 > > > > >
