Hi Surya, Thanks for your reply, I've a few questions below.
On Tue, Dec 15, 2015 at 4:43 PM, Surya Gaddipati <[email protected]> wrote: > Hi Yoann, > Thank you for your response. > > > I was wondering what was missing to rewrite a simplified version of it. > > So here are couple of things that I found needed to be changed > > 1. changed to use spotify-docker api client instead of command line, I > needed it to talk to docker-swarm to allocated nodes > AFAICT, you can use a swarm endpoint with docker CLI, you don't need a special API for this. The docker API is a fast moving target, so wrapping the CLI was convenient for experimenting. > 2. Slaves are allocated based on job label not job property, much like > cloud plugins > We had that feature in mind too, but didn't implement it yet. > 3. We didn't need to run builds in another image/side image ect, we use > docker-compose to run builds. > That's interesting, I don't understand why you need a docker slave then ? Is it just to run a SCM checkout and then call docker-compose to do the build ? I imagine that you are bind mounting the docker socket in the slave node so you can run docker-compose? > 4. Had to remove couple of hacks like this > <https://github.com/ndeloof/docker-slaves-plugin/blob/master/src/main/java/com/cloudbees/jenkins/plugins/dockerslaves/DockerComputerLauncher.java#L84>, > since we don't store builds on disk. > 5. We didn't need jenkins user mounting . > Not sure to understand, do you mean that you don't need to tie a docker volume to a container? > > This plugin simply allocates a new slave via jnlp/docker api calls. There > is no extra magic. > Ok, so you just want a simple docker slave to be able to use docker-compose. The fundamental idea behind our plugin was to replace the process startup API with docker. Because in the end, what you want to do to build a software is to run some commands in a controlled environment. Currently, Jenkins achieves this by allocating a build slave, by installing all the tools you need in it and by calling execve. This is exactly what Docker is for. From my POV, Docker is an a API to launch a process in a controlled environment. The container story is not interesting here. That's why I don't think the Jenkins Cloud model fits well, Docker is not a way to provide a slave from a light VM system. It is convenient but it's not the optimal way to integrate Docker and Jenkins (again, my POV). You use case it not that far, the difference is instead of starting a random process from Jenkins after the checkout, you start docker-compose. Feel free to correct me if I'm wrong. I really would like to understand your use case well so I can understand the gap with existing plugins. > > Surya > > > > > On Sunday, December 13, 2015 at 12:53:44 PM UTC-6, Surya Gaddipati wrote: >> >> This is not a hosting request. I am hoping to get some feedback on the >> plugin and see if its worth hosting/merging into other plugins. >> >> Details are in the readme of the project >> https://github.com/suryagaddipati/jenkins-docker-slaves >> >> >> Pls, let me know if you have any questions. >> >> Surya >> >> -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/57db95e2-f8df-4015-9d91-3705a852aa3d%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/57db95e2-f8df-4015-9d91-3705a852aa3d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAFWoUpSg7Gwz1sh8ZubVFAanbkRyOes58vrvcS95mjaSB9UvFw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
