먼저 test용 docker를 docker-compose를 사용해서 간단히 구축했다.

 

그런데... DB connection이 안된다...

 

Caused by: java.net.ConnectException: Connection refused (Connection refused)

 

흠... 구글링 잘 알되고 (키워드가 뭔가 없었던 것 같다..) application.yml과 docker-compose.yml을 다시 훑어 봐도 문제는 없어 보였다.

 

예전 기억을 떠올리고 떠올리다가 번개처럼 스친 기억!

---
spring:
  profiles: dev
# ===============================
# = DATA SOURCE
# ===============================
  datasource:
    hikari:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://localhost:3306/vermont
      ....

평소 같았으면 전혀 문제 없는 내용....

version: '3'

services:
  db:
    image: mysql:5.7
    restart: always
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: XXXXX
      MYSQL_USER: XXXXX
      MYSQL_PASSWORD: XXXXX
      MYSQL_DATABASE: vermont
    volumes:
      - db-data:/var/lib/mysql
    ports:
      - 3306:3306
    expose:
      - 3306
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
  vermont:
    image: vermont
    restart: always
    ports:
      - 8888:8888
    depends_on:
      - db
volumes:
  db-data:

그러나 docker-compose로 구성하면 다른 얘기가 된다.

위와 같이 services 아래 서비스 이름을 지정하게 되는데 connection url도 서비스 이름으로 접근해야 한다.

그래서 jdbc:mysql://localhost/vermont...가 아닌 jdbc:mysql://db/vermont....로 바꿔야 한다.


알고 있던 내용이었는데... 역시 노트 해놓지 않으니 1시간 허비... 구글링도 잘 못찾았던 것 같다. 노트노트노트!

'Operating System > Docker | Kubernetes' 카테고리의 다른 글

npm ERR! code ENOENT  (0) 2020.11.11
docker-compose react sh: react-scripts: not found  (0) 2020.09.19

+ Recent posts