본문 바로가기
IT/Docker.K8S

[Docker] Springboot 서버 띄우기(com.mysql.cj.jdbc.exceptions.communicationsexception: communications link failure 에러)

by 성준하이 2023. 10. 19.
반응형

Local에서만 테스트 하던 springboot 서버를 docker 를 통해서 띄우는 방법을 공유한다.

 

먼저 docker 를 띄우려면 docker image가 있어야한다.

dockerfile 관련해서는 아래 참고 포스팅 참고 바란다.

 

필자가 사용한 dockerfile은 아래와 같다.

FROM openjdk:17-oracle
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

사용하는 java 는 17버전이고 jar 파일을 app이라는 이름으로 복사하여 사용하였다.

 

docker 실행 명령어는 다음과 같다.

 

-> docker run -p 8080:8080 springtest/test

 

-p 를 통해서 8080을 맞춰줬다.

 

주의점은 local에서 돌릴시 yml 파일에 db 정보를 localhost:3306 으로 해서 설정을 해두었고,

로컬에서는 실행하는데 문제가 없었다.

 

하지만 docker 를 통해서 container 가 실행이 되면서 localhost 경로의 db를 못찾았다.

그래서 spring 이 서버가 기동이 안되고 jdbc connection error 가 발생하였다.

(com.mysql.cj.jdbc.exceptions.communicationsexception: communications link failure)

 

그럴 경우 yml 파일에서 db 설정 부분에 hostname을 localhost 나 127.0.0.1 이 아닌.

url: jdbc:mysql://host.docker.internal:3306/...

으로 지정하였다.

 

(다시 로컬에서 기동할때는 변경해줘야한다)


참고 포스팅

https://thenicesj.tistory.com/723

 

[Docker] Dockerfile 만들기

Docker 의 container 를 띄우기 위해서는 docker image 가 필요하며 https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in D

thenicesj.tistory.com

 

반응형

'IT > Docker.K8S' 카테고리의 다른 글

[K8S] nip.io 란?  (14) 2024.04.05
[Docker] Oracle (19.3 C)  (36) 2023.11.10
[Docker] Dockerfile 만들기  (54) 2023.10.18
docker-compose  (50) 2023.10.03
PV, PVC (Persistent Volume Claim)  (50) 2023.09.23

댓글