인프런 커뮤니티 질문&답변

mjjung님의 프로필 이미지
mjjung

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Configuration Service

config-service docker 실행 시 오류

작성

·

636

1

안녕하세요. 강의에서 config-service의 yml 파일 내 uri와 jks 파일의 위치를 바꿔서 docker에서 실행해도 강의에서 나왔던 오류가 발생합니다.

bootstrap.yml

encrypt:
#  key: abcdefghijkimnopqrstuvwxz0123456789
  key-store:
    location: file:/apiEncryptionKey.jks
    password: test1234
    alias: apiEncryptionKey
  • jks 파일의 위치를 Dockerfile과 동일한 경로에 복사했습니다.

application.yml

server:
  port: 8888
spring:
  application:
    name: config-server
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest

  cloud:
    config:
      server:
        native:
          search-locations: file://C:\work\springcloud\git-local-repo
        git:
          uri: https://github.com/mjjunng/spring-cloud-config
management:
  endpoints:
    web:
      exposure:
        include: health, busrefresh

 

docker 실행 로그

해당 에러를 확인해보면, 강의에서 파일의 위치를 변경하지 않았던 에러와 동일한 것으로 생각됩니다.

강의와 마찬가지로 파일 경로를 바꿔도 해당 에러가 발생하는데, 제가 놓친 부분이 있을까요?

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

config-service를 Docker로 빌드하여 실행할 때는, 강의에서도 말씀드렸던 것처럼 apiEncryptionKey.jks 파일의 위치를 Docker 이미지가 생성된 다음, 컨테이너가 실행될 때의 해당 위치를 명시해 주세야 합니다. 아래와 같은 설정에서으로 Docker 이미지를 생성하셨다고 가정하면,

encrypt:
    key-store:
        location: file:/apiEncryptionKey.jks
        password: test1234
        alias: apiEncryptionKey

실제로 file:/apiEncryptionKey.jks의 위치는 생성된 config-service Docker 이미지를 가지고 컨테이너를 실행하셨을 때, /(루트디렉토리) 밑에 위치하고 있어야 합니다. 추가로 말씀하신 Docker 실행 로그에서는 jks 파일의 키 관련 오류는 보이지 않고, RabbitMQ의 오류가 확인되고 있는데, 이것은 config-service에서 rabbitMQ에 접속하지 못하는 문제이기 때문에, 같은 Docker network 상에 rabbitMQ 컨테이너가 rabbitmq 라는 이름으로 (포트: 5672) 기동되어 있는지 확인해 보시기 바랍니다. 기본적으로 Docker network를 생성하지 않고, 그냥, 컨테이너들을 실행하면 default 네트워크에 올라와 있는것처럼 보여도, 컨테이너 이름으로 호출하지 못하기 때문에, 반드시 docket network create 명령어를 이용하여 네트워크를 생성하신 다음에 컨테이너들을 실행해 보시기 바랍니다.

감사합니다.

mjjung님의 프로필 이미지
mjjung

작성한 질문수

질문하기