Categories: DockersJava

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" http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz

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

WORKDIR /
RUN wget http://mirror.olnevhost.net/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
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=$M2:$PATH
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: http://192.168.99.100:8080/. It will display “Hello World”

java -jar target/SpringBootSampleWeb-0.0.1.jar
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.

Recent Posts

Top 10 Gartner Technology Trends for 2025

What revolutionary technologies and industries will define the future of business in 2025? As we…

1 day ago

OpenAI GPT Models in 2024: What’s in it for Data Scientists

For data scientists and machine learning researchers, 2024 has been a landmark year in AI…

4 days ago

Collaborative Writing Use Cases with ChatGPT Canvas

ChatGPT Canvas is a cutting-edge, user-friendly platform that simplifies content creation and elevates collaboration. Whether…

5 days ago

When to Use ChatGPT O1 Model

Knowing when to use the LLM such as the ChatGPT O1 model is key to…

5 days ago

Agentic Reasoning Design Patterns in AI: Examples

In recent years, artificial intelligence (AI) has evolved to include more sophisticated and capable agents,…

3 months ago

LLMs for Adaptive Learning & Personalized Education

Adaptive learning helps in tailoring learning experiences to fit the unique needs of each student.…

3 months ago