Multi-Stage Docker Builds Are An Antipattern In Most Java Projects

Docker's building best practices recommend multi-stage builds. The first stage compiles the source, the final stage copies the result into a minimal runtime image. That is useful when Docker is the build environment. In a Maven or Gradle centric organization with an existing CI/CD pipeline, Docker is not the build environment. The pipeline already compiles, tests, and versions the artifact in a…