目錄

Gcloud and Artifact Registry

Gcloud

可以參考 官網 目前的最新版本

  1. 下載檔案 & 解壓縮
1
2
3
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-452.0.1-linux-x86_64.tar.gz

tar -xf google-cloud-cli-452.0.1-linux-x86_64.tar.gz
  1. 執行安裝
1
./google-cloud-sdk/install.sh
  1. 初始化設定
1
./google-cloud-sdk/bin/gcloud init 

Artifact Registry

可以參考 這篇 的 Artifact Registry 部分

  1. 首先需要進行身分驗證,可以在 ~/.docker/config.json 中看到目前有的 Region。其中 asia-east1-docker.pkg.dev 要根據自己當初建立 Artifact 所在的地區改寫
1
2
3
gcloud auth configure-docker asia-east1-docker.pkg.dev

cat ~/.docker/config.json
  1. Image 結構 在 docker build 的時候需要命名為這種結構 asia-east1-docker.pkg.dev/<Project ID>/<Repo Name>/<Image Name>:<Version>,指令如下
1
docker build -t asia-east1-docker.pkg.dev/<Project ID>/<Repo Name>/<Image Name>:<Version> .
  • <Project ID>: 可以透過 GCP 上看到目前專案的 ID
  • <Repo Name>: 建立 Artifact Registry 時的名字
  • <Image Name>: Image 的名稱
  • <Version>: Image 的版本號
  1. 將 image 推上 Artifact
1
docker push asia-east1-docker.pkg.dev/<Project ID>/<Repo Name>/<Image Name>:<Version>
可能出現以下的問題

denied: Permission “artifactregistry.repositories.uploadArtifacts” denied on resource “projects/xxxx/locations/xxxx/repositories/xxxxx” (or it may not exist)

可以根據 這篇 來解決

asia-east1 一樣要換成自己 Artifact 所在的地區

1
gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://asia-east1-docker.pkg.dev

完成之後再 docker push 一次就可以正常執行

  1. 最後可以到 Artifact 上面看是否真的有推上去

🔗參考

  1. Permission “artifactregistry.repositories.uploadAr… - Google Cloud Community
  2. 安装 gcloud CLI  |  Google Cloud CLI 文档
  3. GKE Autopilot 教學―輕鬆管理 K8s,加快軟體開發流程 - Cloud Ace (cloud-ace.tw)
comments powered by Disqus