![](/img/trans.png)
[英]How can I use a SystemAssigned identity when pulling an image from Azure Container Registry into Azure Container Instances?
[英]Container Optimized VM - How to force pulling from registry (and not using local image:tag)?
我正在使用 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 的容器。
直到几个星期前,它都运行良好。 突然间,在所有项目中,它都停止正常工作。 VM 没有拉latest
的,而是继续使用本地的。 我发现的唯一解决方法是使用 SHA 作为标记 ( gcr.io/${PROJECT_ID}/core-app-${BRANCH_NAME}:${SHORT_SHA}
),但这会导致多个图像在 VM 上累积,并在某些情况下累积点,没有足够的空间,部署失败。
那么,当本地磁盘上有同名图像时,如何强制容器优化的 VM 拉取图像:标签?
您可以在拉入新图像之前删除旧图像,方法是使用如下命令
docker image prune -a -f
从一个版本更新到另一个版本时,您的停机时间会更长,但如果这对您来说不是真正的问题,那么这应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.