一般来说,如果是透过GCP官网的介绍方式,透过 docker 指令推送 image 到 GCP Contanier Registry 上,
如果未指定版号推送
$ docker push asia.gcr.io/xxxxxx/darwin-image-test
The push refers to repository [asia.gcr.io/xxxxxx/darwin-image-test]
a65ff0f5005b: Pushed
2acf82036f38: Layer already exists
9f65d1d4c869: Layer already exists
0f804d36244d: Layer already exists
9b23c8e1e6f9: Layer already exists
ffd3d6313c9b: Layer already exists
9eb82f04c782: Layer already exists
latest: digest: sha256:xxxxxx size: 1777
2acf82036f38: Layer already exists
9f65d1d4c869: Layer already exists
0f804d36244d: Layer already exists
9b23c8e1e6f9: Layer already exists
ffd3d6313c9b: Layer already exists
9eb82f04c782: Layer already exists
v01: digest: sha256:xxxxxx: 1570
推送完 image 後,检查目前在 GCP Contanier Registry 上的 image 会自带 latest 的 tag
$ gcloud container images list-tags asia.gcr.io/xxxxxx/darwin-image-test
DIGEST TAGS TIMESTAMP
ce95dbb8bbb6 latest 2021-02-28T22:27:23
b08ecc9f7997 v01 2021-02-18T03:20:26
不过近日在接触某些专案时,看到以下的 image 清单:
$ gcloud container images list-tags asia.gcr.io/xxxxxx/darwin-image-test
DIGEST TAGS TIMESTAMP
04465a0bc048 2021-02-28T22:33:14
ce95dbb8bbb6 latest 2021-02-28T22:27:23
b08ecc9f7997 v01 2021-02-18T03:20:26
04465a0bc048 这个image id 的 tag 是『空白的』、『空白的』、『空白的』
花惹发!正常 docker 推送不是会自带 latest 版号吗 ?
後来探究原因,造成这个现象发生的凶手就是直接在 gcloud 的路径下直接执行 gcloud 里面的 docker 推送所造成的
$ /usr/local/bin/gcloud docker -- push asia.gcr.io/xxxxxx/darwin-image-test
WARNING: `gcloud docker` will not be supported for Docker client versions above 18.03.
As an alternative, use `gcloud auth configure-docker` to configure `docker` to
use `gcloud` as a credential helper, then use `docker` as you would for non-GCR
registries, e.g. `docker pull gcr.io/project-id/my-image`. Add
`--verbosity=error` to silence this warning: `gcloud docker
--verbosity=error -- pull gcr.io/project-id/my-image`.
See: https://cloud.google.com/container-registry/docs/support/deprecation-notices#gcloud-docker
The push refers to repository [asia.gcr.io/xxxxxx/darwin-image-test]
d8e9a7a6fa33: Pushed
2acf82036f38: Layer already exists
9f65d1d4c869: Layer already exists
0f804d36244d: Layer already exists
9b23c8e1e6f9: Layer already exists
ffd3d6313c9b: Layer already exists
9eb82f04c782: Layer already exists
latest: digest: sha256:xxxxxx size: 1777
如何在 CGP Container Registry 上捞出这些没 tag 的 images 呢?
参考官网教学:
$ gcloud container images list-tags asia.gcr.io/xxxxxx/darwin-image-test --filter="NOT tags:*"
DIGEST TAGS TIMESTAMP
04465a0bc048 2021-02-28T22:33:14
在现今强调 CI/CD 的潮流下,不管是 docker registry、GitLab、资料库 ...
只要养成良好的习惯,其实可以避开相当多的问题。
以本文 docker image 为例:
『在推送image前,永远tag接上git版号 ,那麽一来再清docker registry时才不会犹豫不决。另外,即便是测试档也给一个特定的tag例如:test字样,让推上去的image永远迭代掉同一个档案,才不会三不五时就遇到空间爆掉的问题,甚至是看到恐怖的 GCP 使用帐单!
>>: [DSA] - Basic ADT (Arrays, Linked List, Stack)
一日客家话:空心菜(客)风吹:vung coi ES6 之前没有 block 作用域概念是使用var...
-图片来源:DO SON 为了准备测试数据以验证後端API是否暗示被测系统(SUT)是一个数据驱动...
前言 昨天已经将 addAlarmTableViewCell 在 addAlarmTableView...
自从到了美国之後,原本预期要来好好开发海外市场的,果然事情没有这麽顺利,既有客户所遇到的 Bug 跟...
【文字分析】3-4 TF-IDF文字概念 说明 一种分析某单词在文章中重要程度公式 TF-IDF值与...