The Docker landscape in Jenkins is kind of a mess, but I do feel this is a 
good thing for an extensible open source project. The situation is 
exaggerated here because there is so much interest and momentum in Docker. 
We've discussed two Docker client libraries in this thread. There is a 
third, used by Jenkins/Cloudbees, that relies on calling the docker client 
from the command line. I know they're using it in the Docker Custom Build 
Environments plugin, but I believe it's used in all of the new Docker 
plugins that were released this year.

The approach calls the docker command line client and I think it is flawed 
approach. I would much rather see the docker-commons plugin become a focal 
point for a pure Java docker client, credentials management, and reusable 
jelly components. I believe this has worked out well for launchers and 
other 'common' plugins. Here's some of the issues I've encountered while 
working with the plugins that rely on the docker cli:

   1. Requires an existing executor, on master or a slave, for use in 
   invoking the docker client. A pure docker build environment isn't possible.
   2. Docker clients are currently married by version to the server. 
   Connecting to a 1.7.1 server, requires a 1.7.1 client. This breaks down 
   quickly from a maintenance perspective.
   3. The REST apis are built with API stability and backwards 
   compatibility in mind, where as the cli makes no such guarantees. 

If we want to address divergent strategies, I think we should start with 
the above. 





-- 
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 jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/c77af750-7924-4a02-a6e6-07e2fb3343d7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to