How are you using the the docker pipeline plugin ? Is it useful enough for you ? Can i think of scaling with it by starting slave containers on remote docker hosts ?

21 views
Skip to first unread message

ishan jain

unread,
Sep 13, 2017, 11:01:39 AM9/13/17
to Jenkins Users
Hi,

My project consists of a number of services and i have a build-deploy-test pipeline for each. The infrastructure consists of an array of docker hosts where applications are deployed and tested and i have no shortage of them. The build part (mostly maven) happens on Jenkins master node only. For the deployment n testing, i have a dedicated Ansible machine and a jmeter host machine which has the latest version of them installed. I would like to change that to be able to specify a version of Ansible and Jmeter. Now the deployment and test machines are where i feel the shortage of hardware.

Today i was experimenting with docker pipeline plugin majorly because i hoped to put the abundant docker machines to do the deployments and tests as well. I couldn't get it to work because my docker daemons are not listening on the default or any other port and i will have to get it changed. I have a few questions that will basically help me decide if this plugin is of any use in my situation or not.

1- I will be using only remote docker hosts to start slave containers and i will be implementing everything with pipeline code. During this execution, is it still going to eat up an executor on master ? 

2 - Is this plugin any easier to use than just adding the docker machines as slaves and start the containers via sh commands and executing what you need ?

3 - Is Jenkins creating any workspace on remote docker host via this syntax - docker.withServer('tcp://dockerhost:2376', 'credentials') {...} ? How is doing it without SSH ?

4 - I do my maven builds on master node and obviously there is a huge cache. Is there any benefit running the maven build inside a container on master node after mounting the cache ? It looks like it is only going to take more resources.

5 - In the docker pipeline syntax, it seems like we have to specify a port for this temp container - withRun('-p 8080:80')
      how do i make sure that different pipelines get a free port everytime ?
Reply all
Reply to author
Forward
0 new messages