본문 바로가기
개발/git

Dockerbuild 파일에서 git clone

by hyperhand 2023. 11. 22.

이미지를 생성할 때 기본 이미지를 바탕으로 수작업으로 세팅 후 commit을 하는 방법도 있지만 명시적으로 어떤 작업을 거쳐서 이미지가 생성됐는지 확인하기 위해 Dockerbuild 파일을 작성해서 build하는 방법으로도 많이 사용한다.

 

 그런데 도커 사용 이력이 짧다 보니 git 서버에서 소스 코드를 받아오는 과정에서 삽질을 많이 했다. 일단 빌드 중에는 유저와의 interaction이 되질 않는다는 것도 삽질하다 알게 됐고, 때문에 계정 정보를 입력해서 소스코드를 다운 받는 문제를 해결해야 했다.

 

 처음에는 사용중인 username과 password를 주소상에 입력하기도 해봤는데 보안상 문제도 있고, 패스워드 Dockerfile에 그대로 노출돼 있는 것이 미관상(?) 보기 좋지 않았다.

RUN git clone http://username:password@url

 

 

 그러다 생각한 것이 일전에 개인 git 서버를 이전하면서 사용해봤던 access token을 발행해서 그걸 git 주소에 넣어 사용해볼까란 생각에 구글링해보니 가능했다.

 

 나는 현재 경량 git 서버인 gitea를 이용중인데 아마 github이나 gitlab 등도 비슷할거라 생각한다. 기존에 사용했던 gitlab은 비슷했다.

  • Settings - Applications - Generate New Token으로 이동
  • Token Name에 임의의 원하는 토큰 이름을 입력
  • Repository and Organization Access 에서 Public Only 나 All(...) 중 하나를 선택. 보안상 Public only가 좋을 수 있을 것 같다.
  • Select permissions에서는 그냥 repository 항목에서 Read로만 설정
  • Generate Token 버튼 클릭

 

정상적으로 완료되면 아래와 같이 토큰이 발행되는데 이 페이지를 닫으면 차후에는 확인이 불가능하므로 따로 메모해둬야 한다.

 

 

이렇게 하면 해당 repo에 대한 접근이 가능하면서 읽기 전용으로 접근하니 보안 문제도 어느 정도 해결될 수 있을 것이다. 또 문제시 그냥 해당 키를 삭제해버리면 된다.

RUN git clone http://access_token@url
반응형