Containerizing Java applications | Creating a Spring Boot App using Dockerfile

The goal of this article is to containerize a Java application easily, by creating a Spring Boot App using Dockerfile.

The steps will be as follows:-

  1. Setting up a spring-boot app
  2. Creating a dockerfile
  3. Building project jar
  4. Building docker image by using dockerfile
  5. Running image

Let’s examine the above steps in detail:



  1. Setting up spring-boot app: So first of all, use spring initializer to have a very basic spring-boot greetings project with the help of a web dependency.

    The project includes a simple rest controller with a simple greeting message.

    To run this app use command:

    mvn spring-boot:run
  2. Creating A Dockerfile: A dockerfile is a text document which contains commands read by docker and is executed in order to build a container image.

    • FROM: The keyword FROM tells Docker to use a given base image as a build base. In this case Java8 is used as base image with jdk-alpine as tag. A tag can be thought as a version.
    • COPY: copying .jar file to the build image inside /usr/app.
    • WORKDIR: The WORKDIR instruction sets the working directory for any RUN, CMD, ENTRYPOINT, COPY and ADD instructions that follow in the Dockerfile. Here the workdir is switched to /usr/app
    • RUN: The RUN instruction runs any command mentioned.
    • ENTRYPOINT: Tells Docker how to run application. Making array to run spring-boot app as java -jar .jar.
  3. Building Project Jar: Now run mvn install to build a .jar file in target directory.
  4. Building Docker Image: Excecute command docker build -t spring-boot-docker-demo .

  5. Run the image build: Execute command docker run spring-boot-docker-demo

Github repository: Spring Boot Docker Demo



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.