
compose.yaml 파일에서 SpringBoot와 MySQL을 연동하는 과정이다
application.yml
spring:
datasource:
url: jdbc:mysql://mysql-container:3306/databasenmae
username: name
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
#show_sql: true
format_sql: true
dialect: org.hibernate.dialect.MySQLDialect
logging:
level:
root:
org.hibernate.SQL: debug
#org.hibernate.orm.jdbc.bind: trace
auth:
key: ""
server:
port: 8080
address: 0.0.0.0
compose.yaml
services:
mysql:
image: mysql:8.2.0
container_name: mysql-container
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: databasename
ports:
- "3307:3306"
networks:
- my-network
springboot-app:
image: spring-boot-app
container_name: springboot-container
ports:
- "8080:8080"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql-container:3306/databasename
SPRING_DATASOURCE_USERNAME: name
SPRING_DATASOURCE_PASSWORD: password
networks:
- my-network
networks:
my-network:
driver: bridge
도커 컴포즈 명령어
// 도커 컴포즈 실행
docker compose up
// 도커 컴포즈 중단
docker compose stop
// 도커 컴포즈 삭제
docker compose down

제대로 작성했다면 위에 그림처럼 잘 실행된다.
이미지를 생성하기 위한 도커 파일을 작성하는 과정이다
FROM openjdk:17
ARG JAR_FILE=/build/libs/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
도커 파일을 빌드하여 이미지를 내려받고 컨테이너에서 실행을 시키는 과정이다
// Dockerfile Build
docker build -t spring-boot-app(이미지 이름) .
// 도커 컴포즈
docker compose up --build

잘 실행이 되는 것을 알 수 있다.