1

我正在使用 Google Cloud Build 构建在多个项目的 Container Optimized OS VM 上运行的容器

一个典型的cloudbuild.yaml文件如下所示:

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: [ "build",
    "-t", "gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:latest",
    "."]
  - name: 'gcr.io/cloud-builders/docker'
    args: ["push", "gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:latest"]
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ["beta", "compute", "instances", "update-container", "core-app-${BRANCH_NAME}", "--container-image", "gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:latest", "--zone", "${_ZONE}"]
images:
- "gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:latest"

触发器是用一些分支条件定义的

本质上,在提交给给定分支时,会构建一个带有标签的镜像,latest并用于运行给定 VM 的容器。

直到几周前,它都工作得很好。突然间,在所有项目中,它都停止了正常工作。而不是拉latest虚拟机继续使用本地虚拟机。我发现的唯一解决方法是使用 SHA 作为标记 ( gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:${SHORT_SHA}),但这会导致 VM 上累积多个映像,并且在某些时候,空间不足并且部署失败。

那么,当容器优化的虚拟机在本地磁盘上有同名的镜像时,如何强制它拉取镜像:标签?

4

0 回答 0