프로젝트의 빌드 과정에서 다른 private 레포를 복제하는 부분을 설정하고 있었다. 기존에는 도커파일에 ARG로 git credentials을 전달했는데, 이 과정에서 비밀번호 등 정보가 이미지에 남을 우려가 있어 새로운 방법을 찾아보았다.
다음의 이유로 git submodule를 선택했다.
도커를 사용한다면 Build secrets를 읽어보면 좋다.
git 레포지토리에 서브모듈을 추가하는 방법은 간단하다.
git submodule add <repository> [<path>]
repository에 레포지토리 주소를, path에 클론할 경로를 입력하면 된다. 경로가 없다면 레포지토리 이름을 경로로 사용한다.
실행을 완료하면 하나의 폴더와 .gitmodules 파일이 생성된다.
git submodule에는 HTTPS와 SSH 주소 모두 사용 가능한데, 여기서는 레포지토리의 Deploy Key를 사용할 것이기 때문에 SSH 주소를 사용했다. 원한다면 스스로의 힘으로 HTTPS와 Personal access token을 사용해도 된다.
SSH 키 등록 방법
1. SSH 키 쌍을 생성한다. (ssh-keygen)
2. Private 레포지토리의 Settings - Deploy Keys - Add deploy key 에서 SSH 공개키를 등록한다.

SSH 키를 ~/.ssh에 저장해두었다면 submodule add를 실행할 때 자동으로 사용하는 것 같은데 정확한 이유를 확인해보지는 않았다.
다음에 글에서는 Action과 Webhook을 사용하여 자동 빌드를 설정해보겠다.