Chapter 2. Continuous Delivery of Java Applications with Docker
“Integrating containers into a continuous-delivery pipeline is far from easy. Along with the benefits Docker brings, there are also challenges both technological and process-related.”
Viktor Farcic, author of DevOps 2.0
This chapter examines the impact of introducing Docker into a Java application build pipeline. In addition to looking at the theoretical issues, practical examples will also be provided, with the goal being to enable a Java developer already familiar with the basic concepts of Docker to start creating an appropriate pipeline. For Java developers looking for an introductory explanation of Docker, Arun Gupta’s Docker for Java Developers is an excellent primer.
Adding Docker to the Build Pipeline
Introducing Docker into a typical Java application build pipeline will primarily impact four locations within the pipeline. The figure below shows an extended example of the earlier Java application build pipeline with the locations of change highlighted (Figure 2-1).
Location 1, the developer’s machine, will now include packaging and running Java application within a Docker container. Typically, testing will occur here in two phases: the first ensures that the Java build artifact (JAR, WAR, etc.) is thoroughly tested, and the second asserts ...