[Trouble shooting] MSA Config Server 설정 오류 트러블슈팅: GIT URI가 필요하다고 어플리케이션이 종료될 때

정의정·2025년 7월 25일

Trouble Shooting

목록 보기
4/4

⚠️ MSA Config Server 설정 오류 트러블슈팅: GIT URI가 필요하다고 어플리케이션이 종료될 때

🧩 문제 상황

Microblog 프로젝트에 MSA 아키텍처를 적용하면서 Config Server 설정을 테스트하던 중, 어플리케이션이 다음과 같은 이유로 계속 종료되는 문제가 발생했습니다.

fatal: No Git repository URI configured

사실 저는 Git이 아닌 로컬에 구성한 config-repo 디렉토리에서 설정을 불러오도록 이미 설정해둔 상태였습니다. 그런데도 계속해서 Git URI를 찾는 이유는 뭘까요?


🔎 트러블슈팅 과정

1. 왜 Git URI를 요구하는가?

Spring Cloud Config Server는 기본적으로 Git 저장소를 설정 파일의 소스로 인식합니다. 따라서 별도의 설정 없이 실행하면 git에서 설정을 가져오려 합니다.

그래서 저는 다음과 같이 native 모드(로컬 파일 시스템에서 설정을 불러오는 모드)로 실행되도록 설정해두었습니다:

# application-docker.yml
spring:
  profiles:
    active: docker
  cloud:
    config:
      server:
        native:
          search-locations: file:///config-repo

하지만 문제는 여기서 끝나지 않았습니다.


2. native 모드로 실행되고 있는지 확인

분명히 application-docker.ymlnative 모드를 명시했는데도 어플리케이션은 계속 Git을 찾고 있었습니다. 로그를 유심히 살펴보니, native 설정이 무시되고 있는 것처럼 보였습니다.

The following 1 profile is active: "docker"

3. docker profile로 실행한 것이 문제였을까?

직감적으로 docker 프로파일을 사용하는 것 자체가 문제일 수 있다고 판단했습니다. 그래서 application-docker.yml을 제외하고, 기본 application.yml만 사용해서 실행해보았더니?

정상 작동!


✅ 해결 방법 정리

이 문제를 해결할 수 있는 방법은 다음 두 가지였습니다:

방법 1. native 프로필로 명확하게 실행

  • application.yml 또는 실행 환경에서 native 프로필을 명시적으로 사용
  • 로컬에서 빠르게 테스트하고자 할 때 유리

방법 2. Git 저장소 기반 구성으로 전환

  • 실제 배포나 협업을 고려해 Git을 설정 소스로 사용
  • application.yml 또는 application-docker.yml에서 spring.cloud.config.server.git.uri 명시

🔍 최종 결정: Git 기반 구성으로 전환

이 프로젝트는 개인 프로젝트이지만, 배포 계획이 있는 만큼 Git 기반 설정이 더 적합하다고 판단했습니다. 또한 Git 기반 설정은 다음과 같은 이점이 있습니다:

  • 설정 이력 관리
  • 프로필에 따른 설정 분리 용이
  • 협업 시 코드와 설정의 명확한 분리

그래서 결국 아래와 같이 git 기반 설정을 추가하여 문제를 해결했습니다:

# application.yml
spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/my-repo/config-repo.git
          default-label: main

⚠️ 정리

항목내용
원인docker 프로필 사용 시 native 설정이 무시되며 Git 설정이 없다는 오류 발생
해결1. native 프로필로 실행하거나
2. Git 저장소 설정을 추가하여 구성
최종 선택Git 기반 설정으로 전환하여 구조적으로 안정적인 구성 선택

📘 참고

profile
배움 기록

0개의 댓글