프로젝트 생성과 적용은 제외

bootJar

libs / demo*.jar 파일 생성 <- 이게 스냅샷
FROM openjdk:17
ARG JAR_FILE=build/libs/spring-0.0.1-SNAPSHOT.jar
ADD ${JAR_FILE} docker-springboot.jar
ENTRYPOINT ["java","Djava.security.egd=file:/dev/./urandom","-jar","/docker-springboot.jar"]
FROM openjdk:17 : jdk 이미지 openjdk:17 적용
ARG JAR_FILE=build/libs/spring-0.0.1-SNAPSHOT.jar
ADD ${JAR_FILE} docker-springboot.jar
ENTRYPOINT ["java","Djava.security.egd=file:/dev/./urandom","-jar","/docker-springboot.jar"]
version: '3'
services:
mysql:
image: mysql:latest
container_name: lennnnon
environment:
- MYSQL_ROOT_PASSWORD=#password
- MYSQL_DATABASE=asac
ports:
- "3307:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- springboot-mysql-net
backend:
image: docker-springboot
build: .
ports:
- "8081:8080"
depends_on:
- mysql
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/user?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=#password
networks:
springboot-mysql-net:
networks:
springboot-mysql-net:
volumes:
mysql_data:
docker build -t (이미지 이름) .
docker-compose up -d
application.yml or application.properties
datasource:
url: jdbc:mysql://mysql:3306/user?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul
username: root
password: #password
driver-class-name: com.mysql.cj.jdbc.Driver # mysql 8버전
# driver-class-name: com.mysql.jdbc.Driver # mysql 5버전
위 내용과 같이 url 중 mysql과 주소를 같게 설정해야한다.
아니면 도커에서 인식을 못한다.
version: '3'
services:
mysql:
image: mysql:latest
container_name: lennnnon
environment:
- MYSQL_ROOT_PASSWORD=#password
- MYSQL_DATABASE=asac
ports:
- "3307:3306"
volumes:
- mysql_data:/var/lib/mysql
networks:
- springboot-mysql-net
backend:
image: docker-springboot
build: .
ports:
- "8081:8080"
depends_on:
- mysql
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/user?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=#password
networks:
springboot-mysql-net:
networks:
springboot-mysql-net:
volumes:
mysql_data:
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/user?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&serverTimezone=Asia/Seoul
mysql:
image: mysql:latest
container_name: lennnnon
environment:
- MYSQL_ROOT_PASSWORD=#password
- MYSQL_DATABASE=asac
ports:
- "3307:3306"
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306
공식문서
https://spring.io/guides/topicals/spring-boot-docker/
https://github.com/ddongbu/ASAC-Multi-Container
https://www.notion.so/softsquared/0a81bda4fdbd4bc9bf76231f650deb1f?pvs=4