항해 취리코/환경셋팅

[환경셋팅] 도커 컴포즈 관련 이슈 1

j1ngerhead 2024. 8. 13. 09:45

도커 컴포즈 셋팅을 하고 돌려 보면 mysql, redis 띄운 컨테이너들은 연결이 되지만
스프링부트를 실행해보면 어제부터 계속 동일한 오류가 발생한다.

 

일단 에러의 원인은 db 연결 문제라는 것 같은데

application.properties 파일 설정 관련해서 발생한 것이라 추측중..

하지만 properties를 다르게 해봐도 계속 오류 폭탄이었다.

기술매니저님께나 다른 스터디원 분들에게도 여쭤보면서 같이 봐주셨지만 해결이 되진 않았다.

2024-08-13T09:38:26.857+09:00  WARN 12692 --- [myshop] [           main] 
o.h.e.j.e.i.JdbcEnvironmentInitiator     : 
HHH000342: Could not obtain connection to query metadata

java.lang.NullPointerException: 
Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper
.convert(java.sql.SQLException, String)" 
because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate
.sqlExceptionHelper()" is null

 

계속 하나씩 주석 해보면서 어디서부터 문제인지 빌드를 재차 해봤는데
이상하게도 타임리프 ?! 관련 주석처리하면 실행이 되긴 했다.

흠...?! 정확히 타임리프때문인건지는 알 수가 없었는데
왜 로컬에서는 작동하는데 도커 컨테이너로 들어갔을 땐 오류가 나는것일까 ?
도커가 어떤 환경에서든 같게 동작하게 해주려고 하는 것 같은데
왜 로컬에서랑 도커에서랑 다르게 작동한거지 ?
jar 파일을 이미지 빌드해서 한 거니까
이 도커 이미지가 에러라면 로컬에서도 부트 앱이 에러가 나야 했던게 맞지 않나 ?!....
빙글빙글 
일단 지금은 컨테이너가 잘 실행되고 있긴 하다.
기능 구현을 하기 위해서 스프링은 빌드하지 않고 mysql만 띄워서 연결해서 쓰는 중
2주차에서 도커 셋팅 다시 할 때 같은 문제가 발생하는지 확인해봐야겠다 !


결론 : 정확한 원인 파악 x -> 빌드한 jar 파일 자체에서부터 이상했던 듯 ( 그 속 코드들에서 뭔가 문제 ?! )

다음에도 비슷한 오류 만나면 
타임리프 관련 설정 주석 + jar 파일 빌드하기 전에 devtools는 빼고 시도하기 

하나씩 주석하고 재빌드 실행하면서 원인 찾기 !

320x100