
tonglil/auth-gcloudauth-gcloud是一个基于google/cloud-sdk的Docker镜像,用于通过GCP服务账户JSON凭证激活gcloud服务账户。该镜像主要用于CI/CD环境中,简化gcloud命令行工具的认证流程,支持多种版本的Drone CI/CD平台。
适用于需要在CI/CD流程中执行gcloud命令的场景,例如:
通过docker run命令直接使用:
shdocker run \ -e TOKEN="$(cat service-account.json)" \ tonglil/auth-gcloud
ymlsteps: - name: gcp-actions image: tonglil/auth-gcloud environment: TOKEN: from_secret: google_credentials commands: - auth-gcloud - gcloud ...
ymlpipeline: gcp-actions: image: tonglil/auth-gcloud commands: - auth-gcloud - gcloud ... secrets: [google_credentials]
ymlbuild: image: google/cloud-sdk environment: TOKEN_B64: $$GOOGLE_CREDENTIALS_B64 GOOGLE_APPLICATION_CREDENTIALS: /tmp/gcloud.json commands: # 传入base64编码的凭证并解码用于gcloud登录 - echo $TOKEN_B64 | base64 -d > $GOOGLE_APPLICATION_CREDENTIALS - gcloud auth activate-service-account --key-file "$GOOGLE_APPLICATION_CREDENTIALS" - gcloud ...
使用基础镜像的gcloud版本号作为标签,发布步骤如下:
shmake pull make version
yml- name: gcr-cleanup image: tonglil/auth-gcloud:alpine environment: REGISTRY: us.gcr.io REPO: project/image TOKEN: from_secret: google_credentials commands: - auth-gcloud # 删除未标记的镜像 - gcloud container images list-tags "$REGISTRY/$REPO" --filter='-tags:*' --format='get(digest)' --limit=unlimited | xargs -I {arg} gcloud container images delete "$REGISTRY/$REPO@{arg}" --quiet # 仅保留最近50个镜像 - gcloud container images list-tags "$REGISTRY/$REPO" --format='get(digest)' --limit=unlimited | tail -n +51 | xargs -I {arg} gcloud container images delete "$REGISTRY/$REPO@{arg}" --quiet --force-delete-tags
yml- name: gcr-tag image: tonglil/auth-gcloud:alpine environment: REGISTRY: us.gcr.io REPO: project/image TOKEN: from_secret: google_credentials commands: - auth-gcloud - gcloud container images add-tag "$REGISTRY/$REPO:${DRONE_COMMIT}" "$REGISTRY/$REPO:${DRONE_TAG}" "$REGISTRY/$REPO:stable" --quiet when: event: tag
yml- name: gcr-tag image: tonglil/auth-gcloud:alpine environment: SRC_REGISTRY: us.gcr.io SRC_REPO: project/image1 DST_REGISTRY: us.gcr.io DST_REPO: project/image2 TOKEN: from_secret: google_credentials commands: - auth-gcloud # 可同时标记/复制到多个目标 - gcloud container images add-tag "$SRC_REGISTRY/$SRC_REPO:${DRONE_COMMIT}" "$DST_REGISTRY/$DST_REPO:${DRONE_TAG}" --quiet when: event: tag



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务