How to Dockerize Springboot Web App

This blog represents instructions and code samples on how to Dockerize a Springboot Web app. The source code be found from this git repository.

Following are key aspects of this blog:

  • Dockerfile & image
  • Install the image
  • Run the container and access the app
Dockerfile & Image

Download the code from this page and put them all in a folder. Before we go one to create the image, lets know a little more about the Dockerfile. Following points need to be noted in the Dockerfile:

  • The image created is a Centos6 image
  • The Java is installed in a predefined path “/opt/jdk”
  • Then, Maven is installed and JAVA_HOMEĀ is set.
  • The source file is then copied to image.
FROM centos:centos6

# Setup Java
RUN mkdir /opt/jdk
RUN cd /opt

RUN yum -y install wget tar

RUN wget --header "Cookie: oraclelicense=accept-securebackup-cookie"

RUN tar -zxf jdk-8u5-linux-x64.tar.gz -C /opt/jdk

RUN update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_05/bin/java 100
RUN update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_05/bin/javac 100

# Setup Maven

RUN wget
RUN tar xvf apache-maven-3.0.5-bin.tar.gz

RUN mv apache-maven-3.0.5  /usr/local/apache-maven
ENV M2_HOME=/usr/local/apache-maven
ENV M2=$M2_HOME/bin
ENV PATH=$PATH:/usr/bin

ENV JAVA_HOME=/opt/jdk/jdk1.8.0_05

# Copy Source files

RUN mkdir src
ADD src /src
ADD pom.xml /

RUN mvn package


Install the Image

Following command is used to install the image:

docker build -f springboot.df -t springboot .


Run the container and Access the App

Following command can be used to start the container.

docker run -ti -d -p 8080:8080 --name demoapp -v /c/Users:/mnt springboot:latest /bin/bash

Once the container is started, access the container using following command:

docker attach demoapp

Go to “/” folder and execute following command. This would start the app on 8080 port. You could then access the app using the following URL: It will display “Hello World”

java -jar target/SpringBootSampleWeb-0.0.1.jar
Ajitesh Kumar

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.
Posted in Dockers, Java. Tagged with , .

Leave a Reply

Your email address will not be published. Required fields are marked *