Git Submodule을 이용해서 안전하고 유지보수하기 쉽게 환경변수 관리하기
Table of contents
Git의 서브모듈은 Git 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것이다.
다른 독립된 Git 저장소를 Clone 해서 내 Git 저장소 안에 포함할 수 있으며 각 저장소의 커밋은 독립적으로 관리한다.
Git 서브모듈을 사용해서 private repository에 환경변수를 저장하여
docker 컨테이너 실행 시, 복잡하게 환경변수를 입력해주지 않아도 되서 유지보수성을 향상시킬 수 있고
private repository에 저장하여 권한 없이 접근할 수 없도록 하여 보안을 향상시켜보도록 해보자.
private repository 생성
환경변수가 들어있는 yml 파일을 private repository에 생성한다.
프로젝트와 private repository 연결
git submodule add <private repository 주소>
위 구문을, terminal에 입력한다.
입력하니 sns-env
디렉토리와 .gitmodules
라는 파일이 생성되었다.
task copyPrivate(type: Copy) {
copy {
from './sns-env' //위 사진과 같은 폴더 명
include "application-sns.yml" //위 폴더안에 있는 yml파일 명
into 'src/main/resources' //복사할 위치
}
}
build.gradle에 위 구문을 추가한다. (private repository로부터 주입받은 파일을 실제로 존재하게 만들어준다.)
다시 build하면 위와 같이 application-sns.yml
파일이 resource 폴더에 생성된다.
이 yml 파일은 커밋되어 원격 저장소로 가면 안된다. 주의하자.
로컬에서 실행할땐, 위와같이 Active profiles
에 sns를 적어주면 된다. (가져온 파일이 application-sns.yml
이므로 )
커밋하고, 푸시한 뒤 깃허브 프로젝트 레포지토리에 가보면
잘 적용된것을 확인할 수 있다.
참고 블로그 : https://percyfrank.github.io/infra/Infra01/