Skip to content

Freeongoo/spring-boot-to-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple move spring boot application jar to docker

  1. need to manually compile our application

mvn clean package -DskipTests

our file should be created:

target/demo-0.0.1-SNAPSHOT.jar

  1. create Dockerfile
FROM openjdk:11 RUN mkdir /demo COPY target/demo-0.0.1-SNAPSHOT.jar /demo/demo-0.0.1-SNAPSHOT.jar WORKDIR /demo ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"] 
  1. compile Dockerfile

docker build -t demo .

  1. run docker

docker run -d --name demo -p 8080:8080 demo

if need override custom port to passed SERVER_PORT

docker run -d -e SERVER_PORT=8081 -p 8081:8081 demo

  1. check in browser

http://localhost:8080

  1. connect to docker

docker container exec -ti demo /bin/bash

Compile src in docker

  1. create Dockerfile
FROM maven:3.8-jdk-11 AS build_step RUN mkdir /demo_build COPY . /demo_build WORKDIR /demo_build RUN mvn clean package -DskipTests FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim RUN mkdir /demo COPY --from=build_step /demo_build/target/demo-0.0.1-SNAPSHOT.jar /demo WORKDIR /demo CMD ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"] 
  1. compile Dockerfile

docker build -t demo .

  1. run docker

docker run -d --name demo -p 8080:8080 demo

  1. check in browser

http://localhost:8080

Run application with database in docker compose

  1. need to manually compile our application

mvn clean package -DskipTests

our file should be created:

target/demo-0.0.1-SNAPSHOT.jar

  1. create Dockerfile
FROM openjdk:11 RUN mkdir /demo COPY target/demo-0.0.1-SNAPSHOT.jar /demo/demo-0.0.1-SNAPSHOT.jar WORKDIR /demo ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"] 
  1. compile Dockerfile

docker build -t demo .

  1. create dirs with permission write:
  • db
  • log
  1. Create docker-compose.yml
version: "3.1" services: mysql: container_name: mysql8 command: mysqld --default-authentication-plugin=mysql_native_password image: mysql:8 volumes: - ./db:/var/lib/mysql restart: always ports: - "3335:3306" environment: MYSQL_ROOT_PASSWORD: root networks: - landemo demo: container_name: demo image: demo volumes: - ./log:/demo/log ports: - "8086:8081" environment: SERVER_PORT: 8081 networks: - landemo networks: landemo: driver: bridge 
  1. run

docker-compose up -d

  1. check existing mysql, connect:

mysql -uroot -h127.0.0.1 -P3335 -p

  1. check in browser

http://localhost:8086

Run application with external application.properties

  1. Create Dockerfile
FROM openjdk:11 RUN mkdir /demo COPY target/demo-0.0.1-SNAPSHOT.jar /demo/demo-0.0.1-SNAPSHOT.jar WORKDIR /demo ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar", "--spring.config.location=resources/application.properties"] 
  1. Create docker-compose.yml
version: "3.1" services: demo: container_name: demo image: demo volumes: - ./log:/demo/log - ./resources:/demo/resources ports: - "8086:8081" environment: SERVER_PORT: 8081 

About

Simple example move spring boot application to docker

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published