使用Cloud Build更新时删除计算实例上的旧Docker映像

时间:2019-03-10 01:19:28

标签: google-cloud-platform gcloud google-cloud-build

我有一个Cloud Build CI管道,我在其中构建和推送新的Docker映像,然后在计算实例上更新该映像。不幸的是,构建过程经常发生,并且由于堆积了旧映像,实例上的磁盘空间仍然用完了。

作为Cloud Build步骤的一部分,我似乎找不到在实例上运行命令的方法。如果可以的话,我可以运行命令来擦除旧图像。

除了每天必须手动几次通过SSH进入实例以清除图像之外,还有人知道如何解决此问题的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用gcloud builderssh命令访问实例。

您需要确保允许您的Cloud Build作业访问实例。

但是:

  • 如何更新实例上的图像?
  • 您是否关心新近更新的图像是否损坏?
  • 您需要还原吗?
  • 您使用的是Container Registry吗?

也许:

一种更简单的方法是每次更新映像时对实例进行重击。 immutable infrastructure的概念鼓励创建新事物,而不是更改现有事物。

每次创建一个新实例将:

  • 避免在实例上建立旧映像的问题
  • 要求您具有可以按需重新创建实例的“代码”
  • 如果需要,允许您将流量从旧实例转移到新实例