wanted에서 진행하는 pre onboarding backend에 참여하여 프로젝트를 git clone하고 진행하던 중
모든 설정을 완료하고(도커 설정 포함) 서버실행을 했는데 계속 실패를 했다.
구조는 로컬에서 스프링 서버 실행, mysql DB 서버는 도커에서 실행하여 로컬의 스프링 서버에서 요청을 받으면
도커의 DB에서 데이터를 주는 구조였다.
아래와 같은 메시지가 발생
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
Process finished with exit code 1
Data source 연결 정보가 잘 못 되어 있다고 되어 있는데 아무리 봐도 잘 못 설정한 부분이 없었고
문제는 run configuration에 있었다.
* 설정 내용
- docker-compose.yml
- docker에서 실행할 내용을 담은 문서
- 스프링 실행시 이 문서에 적힌 내용대로 docker에 image 생성
- volumes의 경로에 초기화 sql을 통해 초기 DB 데이터 생성
- application.yml
- 스프링 서버에서 실행시 참조할 내용을 적은 문서
- docker에 있는 DB와 연결하려면 datasource 부분 설정 확인 필요
- 위의 에러 발생으로 인한 확인 필요 항목
- MySQL 컨테이너 실행 재확인
- 터미널에서 다음 명령어 실행 : docker ps
- MySQL 컨테이너 접속 확인
- 로컬에서 MySQL Workbench 또는 CLI를 사용하여 컨테이너에 접속 확인
- run configuration 확인
- 실행할 profile 설정 확인
- application yml 에서 DB 설정을한 profile로 run 될 수 있도록 설정
- 실행할 profile 설정 확인
- MySQL 컨테이너 실행 재확인
-Dspring.profiles.active=dev