Reputation: 197
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"]
Now what should I do to be able to dockerize?
Upvotes: 0
Views: 579
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
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
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