Public | Automated Build

Last pushed: 10 hours ago
Short Description
Docker base image for Spring Boot applications.
Full Description

Spring Boot Docker Base Image


What is this?

A Docker base image, following Docker image
best-practices,
for Spring Boot applications.

Some features:

  • The Spring Boot application runs as a non-root user inside
    the container
  • Injection of JVM- and application arguments at runtime
  • Wrapper script that will forward Unix signals (example:
    SIGINT) to the Spring Boot application
  • Runs on RedHat OpenShift out of the box

How do I use it?

Using this base image to create an image for your Spring
Boot application is easy:

  1. Create a new Dockerfile and use this image as the
    FROM image
  2. Make sure the Spring Boot application jar (must be named app.jar)
    file is in the same directory as the Dockerfile you've created above
  3. Build your Dockerfile

Here's an example on how you would use it
(Replace /path/to/spring/boot/application.jar
to the actual path of your Spring Boot application jar file):

mkdir bootapp-docker && cd bootapp-docker
echo "FROM etiennek/spring-boot" > Dockerfile
cp /path/to/spring/boot/application.jar ./app.jar
docker build -t bootapp-docker .
docker run -p 8007:8007 bootapp-docker

Then open up your browser to
http://localhost:8007/ and you
should see your Spring Boot application's index page.

Injecting JVM- and application arguments

To inject JVM- and application arguments during runtime,
simply override the BOOTAPP_JAVA_OPTS (for JVM) and
BOOTAPP_OPTS (for application) environment variables.
Example:

docker run -p 8007:8007 \
  -e BOOTAPP_JAVA_OPTS="-Xms512m -Xmx1024m" \
  -e BOOTAPP_OPTS="--spring.profiles.active=test --spring.main.banner-mode=off" \
  bootapp-docker

Example Project

https://github.com/EtienneK/spring-boot-admin

Docker Pull Command
Owner
etiennek