Spring Boot Docker Base Image
What is this?
A Docker base image, following Docker image
for Spring Boot applications.
- The Spring Boot application runs as a non-root user inside
- 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:
- Create a new Dockerfile and use this image as the
- Make sure the Spring Boot application jar (must be named
file is in the same directory as the Dockerfile you've created above
- Build your Dockerfile
Here's an example on how you would use it
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.
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