Hello everybody,
I am a student come from China, and I'm going to attend the Google Summer Of Code. In this project, My idea is the integration of docker plugin and pipeline. My ideas come from some defects of the docker plugin.
First
of all, Jenkins has docker plugin already, we can use a docker host to
dynamically provision a slave, run a single build, then tear-down that slave
with the docker plugin. But, in the actual production environment, these
features can't seem to meet our requirements. For example, we can only run a
container with the image we specified, but we can’t execute any command into
the docker. Actually, in many usage scenario of docker plugin, we just use the
container as a entity Jenkins slave. If we want to do something like updating
or hacking, we must enter into the container manually in the remote node’s
terminal. After that we commit the container manually and get a new image for
the future use. The whole process involves too much manual operation, so the
user experience is not good.
The
reason why I choose this project is to solve the above problems. I want to combine
the docker plugin with pipeline. Users can execute their command into the
container with the pipeline, and users are able to manage containers and images
through the pipeline. In one word, no matter what user want docker to do, they
can do it through a script in the pipeline.
After a period of time for thinking, I have written a proposal draft which is about the integration of docker plugins with pipeline. If anyone could give me some help or feedback about this proposal draft, I will be really grateful to you. The draft's link as follow: