[트러블 슈팅] artifact registry에 이미지 등록 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

1. 개요

  • 기본에는 docker hub에 도커 이미지 올렸음 (클라우드팀에서 아직 ECS가 없다고 함)
  • 그러나 비용 문제로 public으로 저장소를 두어야 했고 보안 우려
  • 멀티 프로세스 아키텍쳐로 수정함에 따라 도커 이미지를 새로 생성함
  • 클라우드 팀에 문의 결과 java 서버는 artifact registry로 관리 중이며, fast api 서버 artifact registry 만들어도 된다고 함
  • 이에 cpu-gpu 서버용 artifact registry를 만들어 이미지 관리하고자 함

Artifact Repository에 도커 이미지 등록

  • 그러나 그 과정에서 아래와 같은 트러블 슈팅 겪음

2. 트러블 슈팅

a. 에러 상황: 도커는 루트 사용자로 이용, gcloud는 현재 사용자로 인증

  • 현재 사용자가 docker group에 포함되어 있지 않아 sudo를 이용해서 도커 이용하던 상황
  • gcloud 사용자 인증은 현재 사용자에 대해서 진행함
  • 루트 사용자는 인증이 되지 않았기 때문에 지속적으로 아래와 같은 에러 발생

artifact

b. 문제 해결

가. 현재 사용자 도커 그룹에 등록

groups # 출력값에 docker가 없다면

sudo usermod -aG docker [사용자이름] # 그룹에 등록
newgrp docker # 새로운 도커 그룹 바로 반영

나. sudo 없이 도커 푸시

  • 이를 통해 gcloud 인증된 사용자가 docker push를 함
  • 푸시 과정에서 ~/.docker/config.json에 등록된 gcp artifact registry 인증 정보 이용됨
  • 인증 성공하여 도커가 artifact registry에 이미지 푸시 성공