gpt4 book ai didi

google-cloud-platform - Google Cloud Build - 如何修剪 VM 上的 docker 镜像?

转载 作者:行者123 更新时间:2023-12-04 16:19:19 25 4
gpt4 key购买 nike

我正在使用带有 Cloud Build 和 cloudbuild.yaml 的 Google Cloud Platform 进行软件部署。目标 VM 始终具有 Google Container Optimized OS (COS)。

我们要做的基本事情是用新容器更新正在运行的 docker 容器。

- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute','instances','update-container','my-vm-id','--zone','europe-west3-c','--container-restart-policy=always','--container-image=gcr.io/cloud-02/my-vm-id','--container-mount-host-path=host-path=/var/extdata,mount-path=/var/extdata,mode=rw']

但在这种情况下,旧的 docker 镜像仍保留在 Host-VM 上。我可以使用 docker 镜像列表在 Host-VM 上列出它们。由于图像位于/var/lib/docker 中,因此文件是有状态的,并且在重新启动后不会消失。

所以,我不明白,如何在部署过程中修剪Host-VM上的docker镜像文件?

最佳答案

解决方案

我找到了完成这项任务的方法。我正在使用 add-metadata添加 startup-script到 vm 的元头。如果在上一步中将启动脚本克隆到管道中,则可以将启动脚本放入存储库。就我而言,启动脚本可以在 git 文件夹/build/compute-engine 中找到。/workdir 是云构建工作管道的默认路径。

现在每次触发构建时都会执行该任务。

云构建.yaml:

- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute','instances','add-metadata','my-vm-id','--zone','europe-west3-c','--metadata-from-file=startup-script=/workspace/build/compute-engine/startup-vm.bash']

启动-vm.bash:
#! /bin/bash
/usr/bin/docker image prune -a -f

关于google-cloud-platform - Google Cloud Build - 如何修剪 VM 上的 docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com