[Docker] SpringBoot, MySQL 연동

예름·2024년 7월 29일

Docker

목록 보기
7/8
post-thumbnail

1. Spring

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

제대로 작성했다면 위에 그림처럼 잘 실행된다.

2. Dockerfile

이미지를 생성하기 위한 도커 파일을 작성하는 과정이다

FROM openjdk:17
ARG JAR_FILE=/build/libs/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

3. Dockerfile Build

도커 파일을 빌드하여 이미지를 내려받고 컨테이너에서 실행을 시키는 과정이다

// Dockerfile Build
docker build -t spring-boot-app(이미지 이름) .

// 도커 컴포즈
docker compose up --build

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

profile
안정적인 쳇바퀴를 돌리는 삶

0개의 댓글