FROM openjdk:17
ARG JAR_FILE=build/libs/\*-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
(보안 상의 이유로 xx로 적어진 부분은 실제 값과 다릅니다)
# MySQL(공용 db)
#spring:
# datasource:
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://xxxxxxx:3306/xxx?characterEncoding=UTF-8
# username: xxxx
# password: xxxx
# MySQL(로컬 db)
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx?characterEncoding=UTF-8
username: xxxx
password: xxxx
공용 DB로 boot.jar 파일을 생성하여 image → container 생성 시, exit(1) 에러 코드가 발생하면서 container가 즉시 종료되었다ㅠ
로그를 살펴보니 com.mysql.cj.jdbc.exceptions.communicationsexception: communications link failure 오류 발생,, 이건 JDBC와 MYSQL이 제대로 연결되지 않았다는 뜻..!
6시간을 붙잡고 이 코드 고쳐보고 저 코드 고쳐보고 하다가 실패하고, 다음 날 차분한 마음으로 다시 구글링을 시작했다.
application으로 돌릴 때는 문제 없이 잘 실행되는데, 위와 같이 localhost로 설정하면 container가 경로의 DB를 찾지 못한다는것을 알게되었다..! 그래서 url을 jdbc:mysql://host.docker.internal:3306/xxx?characterEncoding=UTF=8로 바꾸었더니
얏호!...