代码之家  ›  专栏  ›  技术社区  ›  Mugen

防止Google容器注册表保留“被覆盖”的图像

  •  0
  • Mugen  · 技术社区  · 7 年前

    当我推送一个覆盖现有图像(相同名称和标记)的新图像时,前一个图像只是从其标记中删除,并保留在存储库中。

    img

    有没有办法进行配置 gcr 或者我的docker命令我不要保存过期的图像?我可以在没有标签的情况下查询图像并手动删除它们,但这似乎很荒谬。

    我推送图像的代码:

    export GCLOUD_PROJECT="..."
    gcloud auth activate-service-account --key-file gcloud-api-key.json
    gcloud config set project $GCLOUD_PROJECT
    gcloud auth configure-docker --quiet
    docker build -t my_image .
    docker tag my_image asia.gcr.io/$GCLOUD_PROJECT/my_image:dev
    docker push asia.gcr.io/$GCLOUD_PROJECT/my_image:dev
    
    0 回复  |  直到 7 年前
        1
  •  0
  •   billi90    5 年前

    不幸的是,当你推送带有相同标签的新docker图像时,GCR不会自动删除。另一方面,谷歌提供了API来实现自动化,您可以通过添加delete命令如下更改脚本:

    export GCLOUD_PROJECT="..."
    gcloud auth activate-service-account --key-file gcloud-api-key.json
    gcloud config set project $GCLOUD_PROJECT
    gcloud auth configure-docker --quiet
    docker build -t my_image .
    docker tag my_image asia.gcr.io/$GCLOUD_PROJECT/my_image:dev
    
    # here delete the image
    gcloud container images delete asia.gcr.io/$GCLOUD_PROJECT/my_image:dev
    
    # now push the new one
    docker push asia.gcr.io/$GCLOUD_PROJECT/my_image:dev
    

    你可以在谷歌GCR文档中找到更好的信息 https://cloud.google.com/container-registry/docs/managing#deleting_images .

    推荐文章