1 분 소요

이전 글에 이어서 진행해보자.

Docker Container

12. catalog-service 변경

1) KafkaConsumerConfig.java

이전의 order-service에서 KafkaProducerConfig.java 코드를 변경했을 때와 마찬가지로
catalog-service에서도, kafka broker의 IP Address를 kafka broker container의 IP Address로 변경하자.

변경 전
스크린샷 2022-10-19 오전 1 04 17

변경 후
스크린샷 2022-10-19 오전 1 04 42

2) Dockerfile을 통해 이미지 만들기

FROM openjdk:17-ea-11-jdk-slim

VOLUME /tmp

COPY target/catalog-service-0.0.1-SNAPSHOT.jar CatalogService.jar

ENTRYPOINT ["java","-jar","CatalogService.jar"]

3) 이미지 빌드 및 도커 허브에 업로드

# 최신 버전으로 컴파일
$ mvn clean compile package -DskipTests=true
# clean은 기존 파일을 지운다.
# package 옵션으로 jar 파일까지 생성할 수 있다.
# 테스트 코드는 skip

# 이미지 파일 빌드
$ docker build -t ln8847/catalog-service:1.0  .

# 생성된 이미지 확인
$ docker images | grep catalog-service

# 도커 허브에 업로드
$ docker push ln8847/catalog-service:1.0

4) 도커 컨테이너 실행

기존의 application.yml에서 127.0.0.1 혹은 localhost를 사용하고 있는 부분을 -e 옵션을 통해 도커 컨테이너의 이름으로 바꿔서 실행하자.

$ docker run -d --network ecommerce-network \
-e "eureka.client.serviceUrl.defaultZone=http://service-discovery:8761/eureka/" \
-e "logging.file=/api-logs/catalogs-ws.log" \
--name catalog-service \
ln8847/catalog-service:1.0

스크린샷 2022-10-19 오전 1 09 03

네트워크를 확인해보자.

$ docker network inspect ecommerce-network

스크린샷 2022-10-19 오전 1 09 56

로그를 확인해보자.

$ docker logs catalog-service

스크린샷 2022-10-19 오전 1 11 15
별다른 오류 없이 정상적으로 기동되었다.

http://127.0.0.1:8761에 접속해 catalog-service가 잘 등록되었는지 확인해보자.
스크린샷 2022-10-19 오전 1 12 01

참고
지금은 configuration 서버와 rabbitmq는 사용하지 않기 때문에 추가하지 않았지만,
나중에 사용하게 된다면 아래와 같이 -e 옵션을 이용해 추가하면 된다.

$ docker run -d --network ecommerce-network \
-e "spring.cloud.config.uri=http://config-service:8888" \
-e "spring.rabbitmq.host=rabbitmq" \
-e "eureka.client.serviceUrl.defaultZone=http://service-discovery:8761/eureka/" \
-e "logging.file=/api-logs/catalogs-ws.log" \
--name catalog-service \
ln8847/catalog-service:1.0


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기