MarianoSB
asked on
PHP Development - QA - CI - Jenkins - Docker
Hi Experts, I need somebody with experience implementing this architecture (picture attached).
I'm currently developing using docker with no problems (linking apache, redis, mysql and node). I'm trying to take a step up, implementing QA and CI. I've recently installed bitnami jenkins over virtualbox, the php-template, and downloaded all recomended plugins. I've also installed docker on that virtualbox machine (ubuntu 14.04).
Now, i must figure out the best approach
1- Jenkins running docker exec with -c "phing / ant....composer " "gulp/grunt bower" inside containers to run test on node (for angular) and apache (for php)
2- Jenkins talking with dockerized jenkins (slave)
3- Another recomended way?
I'm interesed on hearing some experienced developer who can point me on the right direction to gain QA on my projectss.
Please excuse my english.
Regards.
I'm currently developing using docker with no problems (linking apache, redis, mysql and node). I'm trying to take a step up, implementing QA and CI. I've recently installed bitnami jenkins over virtualbox, the php-template, and downloaded all recomended plugins. I've also installed docker on that virtualbox machine (ubuntu 14.04).
Now, i must figure out the best approach
1- Jenkins running docker exec with -c "phing / ant....composer " "gulp/grunt bower" inside containers to run test on node (for angular) and apache (for php)
2- Jenkins talking with dockerized jenkins (slave)
3- Another recomended way?
I'm interesed on hearing some experienced developer who can point me on the right direction to gain QA on my projectss.
Please excuse my english.
Regards.
ASKER
Thank you so much for posting mrcoffee365,
My goal is to have the same environment on development, testing and production. I thought that using the same base image for development and testing was a good idea.
Now I'm evaluating two options (i don't know other). Using shell (after pulling github) commands from jenkins to start a docker container, then run docker exec commands to do phing/ant task inside that environment (I've recently did that and seems to work, its something like this : https://ig.nore.me/2015/09/using-docker-for-a-more-flexible-jenkins/ ). The other option, is a dockerized version of jenkins (with php inside) and run master-slave commands, and let jenkins docker plugin talk with docker (something like this: https://www.youtube.com/watch?v=dwomWpJ0m3g)
There is a similar question here: http://stackoverflow.com/questions/25114021/jenkins-using-docker-how-to-run-tests
And they go for the second option, i need to figure out why is better.
Have you any experience using the above tools? or working with a similar scenario
Thank you again for your time.
Regards,
My goal is to have the same environment on development, testing and production. I thought that using the same base image for development and testing was a good idea.
Now I'm evaluating two options (i don't know other). Using shell (after pulling github) commands from jenkins to start a docker container, then run docker exec commands to do phing/ant task inside that environment (I've recently did that and seems to work, its something like this : https://ig.nore.me/2015/09/using-docker-for-a-more-flexible-jenkins/ ). The other option, is a dockerized version of jenkins (with php inside) and run master-slave commands, and let jenkins docker plugin talk with docker (something like this: https://www.youtube.com/watch?v=dwomWpJ0m3g)
There is a similar question here: http://stackoverflow.com/questions/25114021/jenkins-using-docker-how-to-run-tests
And they go for the second option, i need to figure out why is better.
Have you any experience using the above tools? or working with a similar scenario
Thank you again for your time.
Regards,
No sorry -- I don't have experience with the specific sequence of events you are doing.
The answer on stackexchange seems reasonable. The key statement seems to be "build jobs normally run as slaves on jenkins."
Why are you concerned? It looks to me as if in theory either method would be fine. You just want a test environment you can use reliably (without using production resources).
The answer on stackexchange seems reasonable. The key statement seems to be "build jobs normally run as slaves on jenkins."
Why are you concerned? It looks to me as if in theory either method would be fine. You just want a test environment you can use reliably (without using production resources).
ASKER
Thank you for taking the time to read and comment, I just want to be pointed on the right direction. I't seems that the way I'm doing it now works, but maybe the other way has more PROS than this one, or maybe as the project grows my way will fail at some point.
Again, thank you for yor time.
Regards,
Mariano
Again, thank you for yor time.
Regards,
Mariano
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I think it's easier to run jenkins within the environment to which it's connected. It looks as if you're doing that -- a copy of your docker apps with jenkins?