Microblog 프로젝트에 MSA 아키텍처를 적용하면서 Config Server 설정을 테스트하던 중, 어플리케이션이 다음과 같은 이유로 계속 종료되는 문제가 발생했습니다.
fatal: No Git repository URI configured
사실 저는 Git이 아닌 로컬에 구성한 config-repo 디렉토리에서 설정을 불러오도록 이미 설정해둔 상태였습니다. 그런데도 계속해서 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
하지만 문제는 여기서 끝나지 않았습니다.
분명히 application-docker.yml에 native 모드를 명시했는데도 어플리케이션은 계속 Git을 찾고 있었습니다. 로그를 유심히 살펴보니, native 설정이 무시되고 있는 것처럼 보였습니다.

The following 1 profile is active: "docker"
직감적으로 docker 프로파일을 사용하는 것 자체가 문제일 수 있다고 판단했습니다. 그래서 application-docker.yml을 제외하고, 기본 application.yml만 사용해서 실행해보았더니?
✅ 정상 작동!
이 문제를 해결할 수 있는 방법은 다음 두 가지였습니다:
native 프로필로 명확하게 실행application.yml 또는 실행 환경에서 native 프로필을 명시적으로 사용application.yml 또는 application-docker.yml에서 spring.cloud.config.server.git.uri 명시이 프로젝트는 개인 프로젝트이지만, 배포 계획이 있는 만큼 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 기반 설정으로 전환하여 구조적으로 안정적인 구성 선택 |