Cloud Run移除Bitbucket仓库持续部署选项后,如何实现持续部署?
从Bitbucket仓库实现Cloud Run持续部署的方案
目前Cloud Run移除了直接关联Bitbucket的持续部署选项,你可以通过以下两种主流方案重新实现自动部署:
方案一:使用Bitbucket Pipelines(推荐,适配Bitbucket生态)
这是最直接的方式,通过Bitbucket自带的CI/CD工具完成构建+部署流程:
配置GCP服务账号
- 登录GCP控制台,创建一个服务账号,给它分配以下权限:
- Cloud Run Admin(用于部署服务)
- Storage Admin(用于推送镜像到GCR)
- Service Account User(允许服务账号以自身身份执行部署)
- 下载该服务账号的JSON密钥文件
- 打开Bitbucket仓库的「Settings」→「Repository variables」,添加两个变量:
GCP_SERVICE_ACCOUNT_KEY:将JSON密钥的内容粘贴进去GCP_PROJECT_ID:你的GCP项目ID
- 登录GCP控制台,创建一个服务账号,给它分配以下权限:
编写Bitbucket Pipelines配置文件
在项目根目录创建bitbucket-pipelines.yml文件,示例配置如下(按需替换占位符):# 使用包含GCP SDK的镜像 image: google/cloud-sdk:latest pipelines: # 仅在main分支推送时触发部署,可根据需求修改分支规则 branches: main: - step: name: 构建镜像并部署到Cloud Run script: # 认证GCP - echo "$GCP_SERVICE_ACCOUNT_KEY" > gcp-key.json - gcloud auth activate-service-account --key-file=gcp-key.json - gcloud config set project $GCP_PROJECT_ID # 构建Docker镜像(确保项目根目录有Dockerfile) - IMAGE_NAME=gcr.io/$GCP_PROJECT_ID/你的服务名称 - IMAGE_TAG=$(git rev-parse --short HEAD) - docker build -t $IMAGE_NAME:$IMAGE_TAG . # 推送镜像到GCR - gcloud auth configure-docker - docker push $IMAGE_NAME:$IMAGE_TAG # 部署到Cloud Run,替换服务名、区域等参数 - gcloud run deploy 你的服务名称 --image $IMAGE_NAME:$IMAGE_TAG --region 你的区域(如us-central1) --platform managed --allow-unauthenticated验证流程
推送代码到main分支,打开Bitbucket仓库的「Pipelines」标签,查看构建和部署是否成功。
方案二:使用Cloud Build触发部署
如果习惯用GCP的Cloud Build工具,也可以通过Webhook关联Bitbucket仓库:
关联Bitbucket到Cloud Build
- 登录GCP控制台的Cloud Build服务,进入「触发器」→「创建触发器」
- 源代码选择「Bitbucket Cloud」,按照提示完成GCP与Bitbucket的授权
- 配置触发条件(比如指定分支、标签)
编写Cloud Build配置文件
在项目根目录创建cloudbuild.yaml,示例配置:steps: # 构建Docker镜像 - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/你的服务名称:$COMMIT_SHA', '.'] # 推送镜像到GCR - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/你的服务名称:$COMMIT_SHA'] # 部署到Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - 'run' - 'deploy' - '你的服务名称' - '--image' - 'gcr.io/$PROJECT_ID/你的服务名称:$COMMIT_SHA' - '--region' - '你的区域' - '--platform' - 'managed' - '--allow-unauthenticated' images: - 'gcr.io/$PROJECT_ID/你的服务名称:$COMMIT_SHA'启用触发器
保存触发器后,推送代码到Bitbucket仓库,Cloud Build会自动触发构建和部署流程。
内容的提问来源于stack exchange,提问作者applefanboy
相关产品推荐
相关产品推荐

