[트러블 슈팅] - Docker 연동 여정기

Kyungmin·2024년 11월 27일
0

Spring

목록 보기
37/39
post-thumbnail

이 글은 이틀 동안 퇴근 후 몇 시간가량(기억하고 싶지 않은 시간)을 docker 와 spring 연동을 하며 겪은 일들과..

연동을 끝내고 부하테스트를 진행하며 어떤 고민을 했는지에 대해 작성해보겠다.

하려던 것은 다음과 같다.

  • os : mac
  • Spring app 과 redis, mysql, kafka 를 Docker 에 올려 구축하기

😨 만난 오류들

먼저 도커와 친숙하지 않아서인지는 몰라도, 이번에 코치님도 그렇고 테스트할 때 환경을 최대한 실제환경과 비슷하게 하기위해 도커로 띄우면 좋다고 말씀하셔서 이번 기회에 해보자!! 라고 생각했다.

우선 DockerFile 을 작성하고 docker-compose.yml 과 docker.properties 를 작성했다. 글로 쓰니까 별거 아닌거처럼 보이지만..

docker-compose.yml

  kafka:
    image: bitnami/kafka:latest
    container_name: kafka
    depends_on:
      - zookeeper
    environment:
      KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
      KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9092

docker.properties

spring.kafka.bootstrap-servers=kafka:9092

(너무 어이없는 내 실수이지만 작은 것도 다 적어보자)

docker.properties 에는 kafka:9092 로 작성을 했지만 , docker-compose.yml 에는 위와 달리 초기에 local 과 같이 PLAINTEXT://localhost:9092 로 작성하여 연동 오류가 발생했다. config 파일에서도 이 부분이 있는데 처음에 @Value 로 처리해주지 않고 하드코딩으로 "localhost:9092" 로 작성된 곳이 있었는데, 여기를 찾느라 한참 걸린것 같다..

또한 카프카에서

Connection to node -1 (localhost:9092) could not be established

Kafka 브로커가 localhost:9092를 사용하려 하는 문제가 발생했는데,,, 블로그들이 절 살렸어요 ㅜ
kafka 가 설치된 server.properties 에서

asvertised 부분을 내가 사용할 포트로 수정해주면 된다고 해서 수정을 하였다.

도움 주신 분들 감사합니다 ☺️

해결 =>

advertised.listeners 설정 오류로 Kafka가 시작되지 않았다.
kafka:9092 파일마다 일치시키지 않았다.


😨 만난 오류들 - 2


이건 또 뭘까? 위의 오류를 해결하고 docker 를 다시 띄우고자 했다.
되겠지?
아니었다.

왜 멀쩡한 예외처리도 던져놓지 않았는데,, 너 왜 생성안돼?

Unable to determine Dialect without JDBC metadata

주요 이슈

  • spring.jpa.hibernate.ddl-auto 설정이 누락되어 테이블 생성 실패.
    그래서 MySQL 데이터베이스가 초기화되지 않았다.

해결 방법은?

spring.jpa.hibernate.ddl-auto=update 

Hibernate가 엔티티 기반으로 데이터베이스 테이블을 생성하도록 설정!!

  • MySQL 볼륨 초기화

    MySQL 데이터베이스가 기존 데이터를 유지하고 있어 테이블이 초기화되지 않음.
    docker-compose down -v로 모든 볼륨 제거 후 재실행.

그리고..

이 글에 모두 적지는 않았지만, 자잘하게 신경쓰지 않고 넘어가다가 오류를 발생시킨 부분이 너무 많았다.


내가 이 메시지 볼라고 얼마나,,

성공적으로 도커 데스크탑에 올라가 있는 것을 확인했고 docker ps 를 통해서도 한 번더 확인했다.

.
.

[콘서트 예약 시스템] - 부하테스트
에서는 문제를 해결하고 나서 부하테스트를 진행해본 과정을 작성해보겠다.

profile
Backend Developer

0개의 댓글

관련 채용 정보