/gcr.io

:cyclone: sync the docker images of the gcr.io and quay.io

Apache License 2.0Apache-2.0

use the travis to sync the docker images of the gcr.io and quay.io

Build Status

更新

  • 2018/07/15 - 优先推送GB镜像,防止有些全部GB的镜像占满空间
  • 2018/07/18 - 重写逻辑,实现伪接口方便后续扩展
  • 2018/07/19 - quay查询tag有问题,修复
  • 2018/07/22 - 部分文件生成但是未推送镜像到dockerhub,增加文件check来解决
  • 2018/07/23 - 文件check增加时间间隔触发,设置为6小时
  • 2018/07/26 - 增加loop文件,实现每次travis超时后下次还能从上次的namespace继续同步实现loop
  • 2018/07/29 - travis 10分钟不输出会中断,文件check不输出会超时,增加live输出达到存活
  • 2018/08/20 - 文件太多,分为两个仓库同步
  • 2018/09/22 - gcloud-sdk报错,改成http接口查询各项信息

GOOLE_NAMESPACE:

google-appengine cloudsql-docker cloud-marketplace kubeflow-images-public spinnaker-marketplace istio-release kubernetes-e2e-test-images cloud-builders knative-releases cloud-datalab linkerd-io distroless google_containers kubernetes-helm runconduit google-samples k8s-minikube heptio-images tf-on-k8s-dogfood

QUAY_NAMESPACE:

coreos wire calico prometheus outline weaveworks hellofresh kubernetes-ingress-controller replicated kubernetes-service-catalog 3scale

同步以上镜像,另外 k8s.gcr.io <==> gcr.io/google-containers <==> gcr.io/google_containers

How to use?

拉取

假设需要拉取gcr.io/google_containers/pause:3.1 和 gcr.io/google_containers/kube-apiserver-amd64:v1.11.3

$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- gcr.io/google_containers/pause:3.1
$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- gcr.io/google_containers/kube-apiserver-amd64:v1.11.3

查询

查询域名仓库下的namespace和namespace里的镜像列表

$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io
google-samples
google_containers
k8s-minikube
kubernetes-helm
runconduit
spinnaker-marketplace
tf-on-k8s-dogfood
$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io/google_containers
addon-builder
addon-resizer-amd64
addon-resizer-arm
addon-resizer-arm64
addon-resizer-ppc64le
addon-resizer-s390x
......

查询镜像的所有tag或者是否存在tag时

$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- search gcr.io/google_containers/kube-apiserver-amd64
v1.10.0-alpha.0
v1.10.0-alpha.1
v1.10.0-alpha.2
v1.10.0-alpha.3
v1.10.0-beta.0
......
$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- search gcr.io/google_containers/kube-apiserver-amd64:v1.9.3
v1.9.3

或者自己把内容保存为脚本拉取

过程:

方便后期扩展 利用shell的先展开变量这一特点来实现了伪接口扩展来拉取其他仓库

foo(){
    while read img;do
        while read tag;do
            echo docker pull $img:$tag
            echo docker push repo/$img:$tag
        done < <( $@::get_img_tags $img)
    done < <( $@::get_names )
}


google::get_names(){

}

google::get_img_tags(){

}

quay_io::get_names(){

}
quay_io::get_img_tags(){

}


foo google
foo quay_io