[GCloud] Cloud Registry 이미지 Public으로 공개하기
by Nathan Kwon
GCR 이미지 Public으로 공개 하기
Google Container Registry(이하 GCR)에 올려놓은 이미지를 공개적으로 접근할 수 있도록 하려면 해당 프로젝트의 이미지들이 올라가있는 Storage Bucket을 공개적으로 설정해야 한다. 그러므로 해당 프로젝트에 업로드 된 모든 이미지들이 공개가 되니 주의해야 한다.
Push a image to a registry
먼저 GCR에 이미지를 올린다.
Docker Build
Docker 명령어를 이용해서 이미지를 빌드한다. 이 때 모든 아규먼트들을 적절히 입력한다.
export VERSION_TAG=$(date +%s)
export TRAIN_IMG_PATH=us.gcr.io/${PROJECT_ID}/kubeflow-train:${VERSION_TAG}
docker build -t ${TRAIN_IMG_PATH} ${DOCKER_PATH} \
--build-arg version=${VERSION_TAG}
Docker Test locally
GCR에 이미지를 올리기 전에 미리 테스트를 해본다.
docker run -it ${TRAIN_IMG_PATH}
Allow Docker to access GCR
Private하게 이미지를 올리고 그 이미지에 접근하기 위해서는 다음과 같이 인증해줘야한다.
Public하게 올려놓을 때는 필요없다.
gcloud auth configure-docker
Make The Storage Bucket Publicly Accessible
- 먼저 gcp api를 사용할 수 있는 서버나 Cloud shell에서 버킷의 이름을 검색한다.
gsutil ls
- 1번에서 명령어를 사용해서 검색한 리스트 중에 Container Registsry Bucket을 찾는다. Container Registry Bucket의 URL은
gs://artifacts.[PROJECT-ID].appspot.com
orgs://[REGION].artifacts.[PROJECT-ID].appspot.com
와 같은 형태이다. - 2번에서 찾은 버킷의 접근 권한을 변경한다.
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]
Subscribe via RSS