using docker to develop, test and run maven projects - wouter danes
TRANSCRIPT
![Page 1: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/1.jpg)
Using Docker to Develop,
Test and Run Maven
Projects
Wouter Danes
ING
![Page 3: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/3.jpg)
Agenda
• What is docker?
• Ways I use Docker for Development
• Using Docker to Scale CI
• Integrating Docker in your Build Process
• Demo app
• Wouldn’t it be great if..
![Page 4: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/4.jpg)
What is docker?
![Page 5: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/5.jpg)
Hai, Can I Has Rootz?
![Page 6: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/6.jpg)
What is docker?Virtual Machines Docker Containers
![Page 7: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/7.jpg)
Ways I use docker during development
![Page 8: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/8.jpg)
Shadow IT
![Page 9: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/9.jpg)
Run
“production”
locally
![Page 10: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/10.jpg)
Proofs
of
Concept
![Page 11: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/11.jpg)
Using Docker to Scale CI
• Spawn build slaves
• No port collisions
• Master only development
• No version / stack collisions in “environment”
![Page 12: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/12.jpg)
![Page 13: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/13.jpg)
Integrating Docker in your Build Process
![Page 14: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/14.jpg)
High level build process
![Page 15: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/15.jpg)
Docker commands per build step
![Page 16: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/16.jpg)
Maven vs Docker
![Page 17: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/17.jpg)
Docker Maven Plugin Zoo
• 12 github projects
• Varying focus, some better than
others
• pick the one that best fits your
purpose
• Some interesting ones:
– wouterd/docker-maven-plugin
– rhuss/docker-maven-plugin
– spotify/docker-maven-plugin
– rhuss/docker-maven-plugin
![Page 18: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/18.jpg)
What should a maven plugin do?
• Build docker images
• Start containers
• Link containers
• Wait for containers to finish
initialisation
• Expose URLs / port info to
integration tests
• Clean up
• Push images to an index /
registry
![Page 19: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/19.jpg)
Demo project
![Page 20: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/20.jpg)
Wouldn’t It Be Great If..
• Every team would publish
– Application images
– Application test images
– Something describing their dependencies
– Or maybe an image that builds their
environment?
![Page 21: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/21.jpg)
![Page 22: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/22.jpg)
![Page 23: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/23.jpg)
![Page 24: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes](https://reader034.vdocuments.net/reader034/viewer/2022042614/559f0d5f1a28ab7c708b4774/html5/thumbnails/24.jpg)
Wouldn’t It Be Great If..
• Every team would publish
– Application images
– Application test images
– Something describing or creating their dependencies
• And then you could:
– Auto-test against new dependencies?
– Auto-test dependants vs your new version?