24
Using Docker to Develop, Test and Run Maven Projects Wouter Danes ING

Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

  • Upload
    nljug

  • View
    941

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Using Docker to Develop,

Test and Run Maven

Projects

Wouter Danes

ING

Page 2: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Full Stack Engineer

@wouterdanes

github.com/wouterd

wouterdanes.net

Page 3: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

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

What is docker?

Page 5: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Hai, Can I Has Rootz?

Page 6: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

What is docker?Virtual Machines Docker Containers

Page 7: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Ways I use docker during development

Page 8: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Shadow IT

Page 9: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Run

“production”

locally

Page 10: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Proofs

of

Concept

Page 11: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

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
Page 13: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Integrating Docker in your Build Process

Page 14: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

High level build process

Page 15: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Docker commands per build step

Page 16: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

Maven vs Docker

Page 17: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

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

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

Demo project

Page 20: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

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
Page 22: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Page 23: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Page 24: Using Docker to Develop, Test and Run Maven Projects - Wouter Danes

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?