Github Container Registry이미지 생성과 Github 저장소 등록Create Personal Access TokenGithub Container Registry LoginContainer Image PushGithub 이미지 저장소 관리
Github Container Registry
Container Image 를 저장하는 방법은 다양하다.
AWS, GCP, Azure 와 같은 Cloud Service 를 이용할 수 있으나 유료이다. Docker Hub 를 이용하는 방법이 있도 있다. 하지만, 6개월 동안 활동이 없으면 이미지를 제거하는 정책과 API rate 제한이 생기면서 이용이 까다로워졌다.
때마침 2020년 Github Container Registry 가 발표되었다.
Github Container Registry Docs
이미지 생성과 Github 저장소 등록
Create Personal Access Token
Container Registry 를 이용하려면, 먼저 토큰이 필요하다.
https://github.com/settings/tokens 에서 패키지에 대한 권한을 가진 토큰을 생성하자.
write:packages
,read:packages
,delete:packages
권한을 활성화 해야 한다.

토큰이 생성되면, 해시값을 확인할 수 있다. 단, 토큰값은 생성직후에만 확인가능하다. 잊어버리면 지우고 새로 생성해야 하니, 안전하게 보관하도록하자.

Github Container Registry Login
위 생성한 토큰을
t-ghcr-token
파일로 만들어두었다면, 아래 명령어로 쉽게 로그인할 수 있다.$ cat t-ghcr-token | docker login ghcr.io -u <USERNAME> --password-stdin Login Succeeded
Container Image Push
Github Container Registry 는 아래와 같은 형태로 이미지 이름과 태그를 달아주어야 하니, 이미지를 원격 저장소로 처음 푸시해보는 분들은 조금 주의하도록 한다.
ghcr.io/<USERNAME>/<이미지이름>:<태그>
이제 만들어진 이미지를 푸시하면 된다.
참고로 위와 같이 이미지 이름과 태그를 달아주는 것을, 태깅한다고 부르기도 한다.
# tagging $ docker tag ghcr.io/eugenejeonme/node-api:v1 # push $ docker push ghcr.io/eugenejeonme/node-api:v1
Github 이미지 저장소 관리
올린 이미지는 계정의 패키지 탭에서 확인할 수 있다. → https://github.com/<USERNAME>?tab=packages

이미지를 올리면,
Private
(비공개) 설정이 되어 있다. 이미지 이름을 클릭해서 버전과 pull 방법 등을 자세히 확인할 수 있다.

하단에는 이미지를 특정 저장소로 연결할 수 있는 방법을 소개해 주고 있다.
연결하면 해당 저장소의 README 파일을 표시할 수 도 있고, 저장소의 issue, discussion 링크도 추가해준다.

중요한 걸 깜빡할 뻔 했다.
Github Container Registry 에서는 Private 공간은 용량 제한이 있다. Public 공간은 용량 제한이 없으니 마음껏 이용하자.
패키지 설정에서 Visibility 를 변경할 수 있다.
