GCR(Google Cloud Registry)은 Cloud Storage 버킷에 이미지를 저장합니다.
gcr.io 레지스트리에 이미지를 푸시하면 자동으로 버킷을 생성하는데요, 이 버킷의 위치는 기본적으로 us입니다.
asia.gcr.io 레지스트리는 버킷 위치가 asia 라서 아시아 서버인 경우 더 빨리 pull 받을 수 있습니다.
아무튼 그래서 github actions 워크플로에서 asia.gcr.io 레지스트리에 푸시를 하는데 계속 401 에러가 나왔습니다.
왜..? 권한도 문서에 있는대로 잘 준 것 같은데?
괜히 IAM Role만 계속 추가했다 뺐다.. 삽질을 반복했습니다
- name: Login to GCR
uses: docker/login-action@v2
with:
registry: asia.gcr.io
username: _json_key
password: ${{ secrets.GCR_JSON_KEY }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: open-market-server-app
push: true
tags: asia.gcr.io/${{ secrets.GCP_PROJECT_ID }}/server:latest
cache-from: type=gha
cache-to: type=gha,mode=max
결국 원인을 찾았는데, asia 리전의 registry로 푸시를 하면 docker login도 asia.gcr.io로 동일하게 해줘야 하는 것이었습니다.
저의 경우는 로그인은 gcr.io, 이미지 태그는 asia.gcr.io/...로 만들었더니 문제였네요 😞
참고
반응형
'Cloud platform > Google Cloud Platform' 카테고리의 다른 글
[GCP] GKE 클러스터 버전업 (0) | 2022.10.01 |
---|---|
[GCP] 프로젝트 이름 변경 방법 (0) | 2022.08.27 |