#6 BE 세팅(Docker-mysql)

또여·2022년 10월 23일
0

사업아이템

목록 보기
5/11

도커를 사용해서 spring boot 프로젝트를 세팅하여, 여러 이미지를 동일한 환경으로 올려보도록 함이 목적.

참고블로그 중 하나..

설정파일 수정

기존에 있는 파일에 아래와 같이 추가


application.properties

spring.sql.init.mode=always

spring.datasource.url=jdbc:mysql://localhost:3307/heth?autoReconnect=true
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

build.gralde 디펜던시 추가

dependencies {
	implementation 'mysql:mysql-connector-java'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

설정파일 추가

root 단위에서 해당 파일들을 생성해주었다

url: 로컬환경이므로 localhost에 포트는 기본적으로 3306을 쓰는데, 자꾸 port가 사용중이라 해서 3307로 변경 그 뒤에 heth는 본인 DB 인스턴스로 기입
username, password: 세팅을 하는것이므로 통일되게 root/1234는 본인 취향대로


application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/heth?useSSL=false
    username: root
    password: 1234

  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create
    generate-ddl: true
    show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect

이거는 나중에 더 사용되게되면 자세히 적고 추가해야할것 같다..

Dockerfile

FROM openjdk:11-jdk
COPY . .
CMD ["./gradlew", "bootRun"]

이것도 마찬가지로 내가 사용하고자 하는 DB 정보에 대한 내용은 알겠는데 나머지에 대한 부분은 잘...
aws 사용하는 부분 추가될 수 있음

docker-compose.yml

version: '3'

services:
  database:
    container_name: mysql_db
    image: mysql/mysql-server:5.7
    environment:
      MYSQL_DATABASE: heth
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: 1234
      TZ: 'Asia/Seoul'
    ports:
      - "3307:3306"
    command:
      - "mysqld"
      - "--character-set-server=utf8mb4"
      - "--collation-server=utf8mb4_unicode_ci"
    networks:
      - test_network

  application:
    container_name: docker-compose-test
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3307/heth?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: 1234
    depends_on:
      - database
    networks:
      - test_network

networks:
  test_network:

src 소스 폴더 구조

controller로 api 진입해서 service에서 구현한 결과를 응답함
service 에서 DB entity 데이터를 DTO 통해 주고받고 repository에서 JPA 쿼리로 DB 수행

결과

포트 8080으로 서비스를 올렸으니

http://localhost:8080/v1/user/1

이런식으로 호출하니, path에 넣은 값이 BE에서 올바르게 읽어짐을 확인!

소스는 현재기준으로 git에..

profile
기록 열심히하는 개발자인척

0개의 댓글