GitLab CI/CD (7) GCP Docker Build
GitLab
CI
CD
GCP
Docker
GCR
底下我們要推到 GCP GCR 用到的 yaml 檔
image: docker:19.03.11
variables:
GCP_PROJECT_ID: your-project-id
GCP_REGISTRY: us.gcr.io
GCP_SOURCE_IMAGE_NAME: cicdTest
dockerBuildGCP:
stage: deploy-Docker-Build
script:
- docker login -u _json_key --password-stdin https://us.gcr.io < $GCP_ACCOUNT_KEY
- DOCKER_BUILDKIT=1 docker build . -t $GCP_SOURCE_IMAGE_NAME
- docker tag $GCP_SOURCE_IMAGE_NAME $GCP_REGISTRY/$GCP_PROJECT_ID/$GCP_SOURCE_IMAGE_NAME
- docker push $GCP_REGISTRY/$GCP_PROJECT_ID/$GCP_SOURCE_IMAGE_NAME
- docker logout https://us.gcr.io
基本上跟上一篇 AWS ECR 差別不大,差別只在於 Docker 的登入方式不同
所以我們只講解 Docker 登入的方式
首先我們需要在 GCP 建立一個 service account, 給他 Storage Admin
的 role.
然後建立 service account 的 json key
gcloud iam service-accounts keys create --iam-account {iam email} {file name}
然後把 file 的內容放到 environment variables 裡面 我們這裡使用 GCP_ACCOUNT_KEY 當成 key 名
docker login -u _json_key --password-stdin https://us.gcr.io < $GCP_ACCOUNT_KEY
然後把 jsonkey 放進去當 password
登入搞定
接下來就是
Docker Build
Docker Tag
Docker Push
最後記得要
docker logut
docker logut
docker logut
很重要要講三次
跑完你就可以去網站上看到 image 已經推上去了
打完收工