dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// Lombok 라이브러리
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}


// JPA 라이브러리
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// Mysql 라이브러리
runtimeOnly 'com.mysql:mysql-connector-java'
> .\gradlew clean build -x test
Error
해결
runtimeOnly 'mysql:mysql-connector-java:8.0.33'
버전을 명시해 주지 않아서 그렇단다.
> docker network create springboot-mysql-net
> docker pull mysql:5.7
Mysql 이미지는 공식적으로 Docker Hub에서 제공한다고 함
mysql 구동
--name: 컨테이너명 설정
-p: 포트매핑
--network: 네트워크 설정
-e: 환경변수 설정
-d: 백그라운드로 컨테이너 실행
> docker run --name new-db-mysql -p 3306:3306 --network springboot-mysql-net -e MYSQL_USER=user -e MYSQL_PASSWORD=user -d mysql:5.7
Error
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0
.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
> netstat -ano | findstr 3306
> tasklist | findstr 7136
mysqld.exe 7136 Services 0 1,668 K
로컬에 설치된 mysql이 이미 3306포트를 점유 중인 상황에서 컨테이너에 호스트 포트 3306을 할당시킨 문제라고 함
> taskkill /pid 7136 /f
오류: 프로세스(PID 7136)를 종료할 수 없습니다.
원인: 액세스가 거부되었습니다.
가 나길래 명령 프롬포트를 관리자 권한으로 실행해서 종료함
> docker build -t springboot-mysql:1.0
흠...

분명 두 개의 컨테이너가 백그라운드에서 잘 돌아가는데

안뜬다... 흠...

일단 데이터베이스 테이블은 만들어졌다.
도움을 받은 블로그
IntelliJ에 Lombok 설치
정말 감사합니다 -> Docker 설정 따라가기 좋습니다!
음...
mysql은 컨테이너가 연동이 잘되는데
spring boot 컨테이너가 자꾸 exit되서...
폭파!!