Hi Ryan, You can tag each image with your commit hash that way Mesos will always have to do a docker pull and you don't lose the fast iteration cycle in development.
Steve On Friday, September 5, 2014, craig mcmillan <[email protected]> wrote: > hey ryan, > > there are two deployment use-cases i generally have : > > - production : i want to consider carefully what i deploy, and refer to > a specific image. a versioned tag works well here > > - development : i want to iterate quickly and something like a branch > (movable tag) works really well here, à la heroku : > git-push => commit-hook => build docker-image => > curl-to-marathon > > it's the development use-case that pull on every launch supports best > > would an option in the ContainerInfo to pull on every launch be reasonable > ? > > i'm happy to do a PR if that would be helpful ! > > :craig > > On 5 Sep 2014, at 9:07, Ryan Thomas wrote: > > Whilst this is somewhat unrelated to the mesos implementation, I think it >> is generally good practice to have immutable tags on the images, this is >> something I dislike about docker :) >> >> Whist the gc of old images will eventually become a problem, it will >> really >> only be the layer delta that is consumed with each new tag. But I think >> yes, there would need to be some mechanism to clear out the images in the >> local registry. >> >> ryan >> On 5 Sep 2014 18:03, "mccraig mccraig" <[email protected]> wrote: >> >> ah, so i will have to use a different tag to update an app >>> >>> one immediate problem i can see is that it makes garbage collecting old >>> docker images from slaves harder : currently i update the image >>> associated >>> with a tag and restart tasks to update the running app, then >>> occasionally a >>> cron job to remove all docker images with no tag >>> >>> if every updated image has a new tag it will be harder to figure out >>> which >>> images to remove... perhaps any with no running container, though that >>> could lead to unnecessary pulls and slower restarts of failed tasks >>> >>> :craig >>> >>> On 5 Sep 2014, at 08:43, Ryan Thomas <[email protected]> wrote: >>> >>> Hey Craig, >>> >>> docker run will attempt a pull of the image if it cannot find a matching >>> image and tag in its local repository. >>> >>> So it should only pull on the first run of a given tag. >>> >>> ryan >>> On 5 Sep 2014 17:41, "mccraig mccraig" <[email protected]> wrote: >>> >>> hi tim, >>>> >>>> if it doesn't pull on every run, when will it pull ? >>>> >>>> :craig >>>> >>>> On 5 Sep 2014, at 07:05, Tim Chen <[email protected]> wrote: >>>> >>>> Hi Maxime, >>>> >>>> It is a very valid concern and that's why I've added a patch that should >>>> go out in 0.20.1 to not do a docker pull on every run anymore. >>>> >>>> Mesos will still try to docker pull when the image isn't available >>>> locally (via docker inspect), but only once. >>>> >>>> The downside ofcourse is that you're not able to automatically get the >>>> latest tagged image, but I think it's worth while price to may to gain >>>> the >>>> benefits of not depending on registry, able to run local images and >>>> more. >>>> >>>> Tim >>>> >>>> >>>> On Thu, Sep 4, 2014 at 10:50 PM, Maxime Brugidou < >>>> [email protected]> wrote: >>>> >>>> Hi, >>>>> >>>>> The current Docker integration in 0.20 does a "docker pull" from the >>>>> registry before running any task. This means that your entire Mesos >>>>> cluster >>>>> becomes unusable if the registry goes down. >>>>> >>>>> The docs allow you to configure a custom .dockercfg for your tasks to >>>>> point to a private docker registry. >>>>> >>>>> However it is not easy to run an HA docker registry. The >>>>> docker-registry >>>>> project recommend using S3 storage buy this is definitely not an >>>>> option for >>>>> some people. >>>>> >>>>> I know that for regular artifacts, Mesos can use HDFS storage and you >>>>> can run your HDFS datanodes as Mesos tasks. >>>>> >>>>> So even if I attempt to have a docker registry storage in HDFS (which >>>>> is >>>>> not supported by docker-registry at the moment), I am stuck on a >>>>> chicken >>>>> and egg problem. I want to have as little services outside of Mesos as >>>>> possible and it is hard to maintain HA services (especially outside of >>>>> Mesos). >>>>> >>>>> Is there anyone running Mesos with Docker in production without S3? I >>>>> am >>>>> trying to make all the services outside of Mesos (the "infra" services >>>>> that >>>>> are necessary to run Mesos like DNS, Haproxy, Chef server... etc) >>>>> either HA >>>>> or not critical for the cluster to run. The docker registry is a new >>>>> piece >>>>> of infra outside of Mesos that is critical... >>>>> >>>>> Best, >>>>> Maxime >>>>> >>>>> >>>> >>>>

