도커를 사용해서 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:
controller로 api 진입해서 service에서 구현한 결과를 응답함
service 에서 DB entity 데이터를 DTO 통해 주고받고 repository에서 JPA 쿼리로 DB 수행
포트 8080으로 서비스를 올렸으니
이런식으로 호출하니, path에 넣은 값이 BE에서 올바르게 읽어짐을 확인!
소스는 현재기준으로 git에..