Sample project demonstrating how to build Docker image for Spring Boot application using gradle-docker-plugin.
To build Docker image containing sample Spring Boot application run following command in terminal:
./gradlew buildDockerImageTo run built image run:
docker run --rm -it orzeh/spring-boot-gradle-docker:0.0.1-SNAPSHOTThis sample project utilizes several optimizations in order to use Docker cache as much as possible. Main idea is based on @bsideup blog post: http://bsideup.blogspot.in/2015/04/spring-boots-fat-jars-vs-docker.html
In build.gradle there is a task named unpackFatJar which is responsible for unpacking contents of Spring Boot Fat Jar into build dir subdirectory. This task preserves modification dates of all copied files (Gradle won`t do this out of the box)
Dockerfile contains several COPY instructions ordered in such a way that files that changes more frequently are at the bottom. This ensures utilizing Docker cache.
.dockerignore file excludes files not used during image build. It reduces the amount of data that need to be send over wire when working with remote Docker engine.