- need to manually compile our application
mvn clean package -DskipTests
our file should be created:
target/demo-0.0.1-SNAPSHOT.jar
- 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"]
- compile Dockerfile
docker build -t demo .
- 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
- check in browser
http://localhost:8080
- connect to docker
docker container exec -ti demo /bin/bash
- 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"]
- compile Dockerfile
docker build -t demo .
- run docker
docker run -d --name demo -p 8080:8080 demo
- check in browser
http://localhost:8080
- need to manually compile our application
mvn clean package -DskipTests
our file should be created:
target/demo-0.0.1-SNAPSHOT.jar
- 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"]
- compile Dockerfile
docker build -t demo .
- create dirs with permission write:
- db
- log
- 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
- run
docker-compose up -d 
- check existing mysql, connect:
mysql -uroot -h127.0.0.1 -P3335 -p
- check in browser
http://localhost:8086
- 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"]
- 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