guidop21
guidop21

Reputation: 197

How to dockerize Spring Boot Application?

I want to dockerize my Spring Boot Project. In eclipse, I have already created a Dockerfile (after creating the application jar file) like this:

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/device-fixer-1.2.1.jar.jar
COPY ${JAR_FILE} device-fixer-1.2.1.jar.jar
ENTRYPOINT ["java","-jar","/device-fixer-1.2.1.jar.jar"]

enter image description here

Now what should I do to be able to dockerize?

Upvotes: 0

Views: 579

Answers (3)

IngeEduar
IngeEduar

Reputation: 1

You can make your Dockerfile this way:

FROM maven:3.8.4-openjdk-11-slim AS build

WORKDIR /app

COPY ./pom.xml .

COPY ./src ./src

RUN mvn dependency:go-offline
RUN mvn package -DskipTests -Dmaven.test.skip=true

FROM openjdk:11-jre-slim

RUN apt-get update && apt-get install -y tini && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=build /app/target/*.jar /app/app.jar

EXPOSE 8080

ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["java", "-jar", "/app/app.jar"]

This video explains how to do it: https://youtu.be/17lOfTfAHsk?si=KDsp3ygQT2eUnVi7

Upvotes: 0

burak isik
burak isik

Reputation: 581

Create files that are named as Dockerfile and docker-compose.yml under project root directory.

Dockerfile

FROM openjdk:11-slim
COPY /target/app.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

docker-compose.yml

version: '1'
    services:
        app:
            build:
                context: "./"
                dockerfile: Dockerfile
            container_name: 'app-name'
            hostname: app-name
            ports:
                - '8080:8080'

Run docker-compose up -d command under root directory to create an image and run your application on localhost:8080

Upvotes: 0

Matteo Zanoni
Matteo Zanoni

Reputation: 4152

Assuming your app listens on port 80

docker build -t <your-app-name> .
docker run -d -p 80:80 <your-app-name>

Upvotes: 1

Related Questions