DEV Community

Cover image for Dockerizing a Spring Boot Application For Beginners
The Witcher
The Witcher

Posted on

Dockerizing a Spring Boot Application For Beginners

Prerequisites

  1. Install Docker on your machine (follow Docker's official installation guide).
  2. Basic Spring Boot Application - Make sure your Spring Boot app is ready to be containerized.

Step 1: Create a Simple Spring Boot Application

If you don't have an application already, create one using Spring Initializr (https://start.spring.io/).
Generate a basic Maven or Gradle project with dependencies you need (for example, Spring Web).

Step 2: Create a Dockerfile

In the root directory of your Spring Boot application, create a new file named Dockerfile (no extension).

# Use an official JDK runtime as a parent image
FROM openjdk:17-jdk-slim

# Add a label to identify the application
LABEL maintainer="your-email@example.com"

# Set the working directory in the container
WORKDIR /app

# Copy the application JAR file to the container
COPY target/your-application-name.jar app.jar

# Expose the port your app runs on
EXPOSE 8080

# Run the application
ENTRYPOINT ["java", "-jar", "app.jar"]
Enter fullscreen mode Exit fullscreen mode

Note: Replace your-application-name.jar with the actual name of your Spring Boot JAR file.

Step 3: Build the Application

In the terminal, navigate to the root directory of your Spring Boot project, then run:

./mvnw clean package
Enter fullscreen mode Exit fullscreen mode

This will build the application and generate a JAR file in the target/ directory.

Step 4: Build the Docker Image

Run the following command in the terminal from the root of your project (where the Dockerfile is located):

docker build -t my-spring-boot-app .
Enter fullscreen mode Exit fullscreen mode

Here:

  • -t my-spring-boot-app tags your image as my-spring-boot-app.
  • . specifies the current directory, where Docker will look for the Dockerfile.

Step 5: Run the Docker Container

Now that the image is created, you can run the container:

docker run -p 8080:8080 my-spring-boot-app
Enter fullscreen mode Exit fullscreen mode

Explanation:

  • -p 8080:8080 maps the container’s port 8080 to your machine’s port 8080.
  • my-spring-boot-app specifies the Docker image to run.

Your Spring Boot application should now be accessible on http://localhost:8080.

Step 6: Verify the Application

Open a browser or use a tool like curl to access the application and verify it's working:

curl http://localhost:8080
Enter fullscreen mode Exit fullscreen mode

Optional Steps

  1. Stop the Docker Container: Find the container ID with docker ps and stop it with:
   docker stop <container-id>
Enter fullscreen mode Exit fullscreen mode
  1. Clean Up Unused Images/Containers:
   docker system prune
Enter fullscreen mode Exit fullscreen mode

Summary

  1. Dockerfile - Define how to build the Docker image.
  2. Build - Create the Docker image.
  3. Run - Start the container and access the application.

This approach should give you a clear path to Dockerizing your Spring Boot application!

Top comments (0)