From 844fadd7fe350b474a86316f45ff0ae2d4d0127f Mon Sep 17 00:00:00 2001 From: Shiming Zhang Date: Tue, 25 Feb 2025 18:08:05 +0800 Subject: [PATCH] Update readme and CI --- .github/workflows/check-images.yml | 15 --- .github/workflows/manual-deep-sync.yml | 25 ---- .github/workflows/manual-sync.yml | 25 ---- .github/workflows/sync.yml | 27 ---- .github/workflows/verify-pr.yml | 23 ---- README.md | 51 +++---- mirror-quick.txt | 180 ------------------------- mirror.txt | 136 ------------------- 8 files changed, 15 insertions(+), 467 deletions(-) delete mode 100644 .github/workflows/check-images.yml delete mode 100644 .github/workflows/manual-deep-sync.yml delete mode 100644 .github/workflows/manual-sync.yml delete mode 100644 .github/workflows/sync.yml delete mode 100644 mirror-quick.txt delete mode 100644 mirror.txt diff --git a/.github/workflows/check-images.yml b/.github/workflows/check-images.yml deleted file mode 100644 index a740a23..0000000 --- a/.github/workflows/check-images.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: "Check Image" -on: - workflow_dispatch: - - schedule: - - cron: "0 8 1,16 * *" - -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Check Image - run: | - ./hack/verify-image.sh mirror.txt diff --git a/.github/workflows/manual-deep-sync.yml b/.github/workflows/manual-deep-sync.yml deleted file mode 100644 index 74601cd..0000000 --- a/.github/workflows/manual-deep-sync.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Manual Deep Sync -run-name: Manual Deep Sync ${{ inputs.image }} by @${{ github.actor }} - -on: - workflow_dispatch: - inputs: - image: - description: 'Manually synchronize a image' - required: true - type: string - -jobs: - sync-images: - runs-on: ubuntu-latest - if: github.repository == 'DaoCloud/public-image-mirror' - steps: - - name: Set up crproxy - run: | - wget https://github.com/DaoCloud/crproxy/releases/download/v0.13.0-alpha.154/crproxy_linux_amd64 -O /usr/local/bin/crproxy && chmod +x /usr/local/bin/crproxy - - - name: Sync Images to OSS&OBS - run: | - ORIGIN_IMAGE=${{ github.event.inputs.image }} - /usr/local/bin/crproxy sync --deep --max-warn 1 ${{ secrets.STORAGE_ARGS }} --user '${{ secrets.OCI_USER }}' --list ${ORIGIN_IMAGE} - \ No newline at end of file diff --git a/.github/workflows/manual-sync.yml b/.github/workflows/manual-sync.yml deleted file mode 100644 index 3739715..0000000 --- a/.github/workflows/manual-sync.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Manual Sync -run-name: Manual Sync ${{ inputs.image }} by @${{ github.actor }} - -on: - workflow_dispatch: - inputs: - image: - description: 'Manually synchronize a image' - required: true - type: string - -jobs: - sync-images: - runs-on: ubuntu-latest - if: github.repository == 'DaoCloud/public-image-mirror' - steps: - - name: Set up crproxy - run: | - wget https://github.com/DaoCloud/crproxy/releases/download/v0.13.0-alpha.154/crproxy_linux_amd64 -O /usr/local/bin/crproxy && chmod +x /usr/local/bin/crproxy - - - name: Sync Images to OSS&OBS - run: | - ORIGIN_IMAGE=${{ github.event.inputs.image }} - /usr/local/bin/crproxy sync --max-warn 1 ${{ secrets.STORAGE_ARGS }} --user '${{ secrets.OCI_USER }}' --list ${ORIGIN_IMAGE} - \ No newline at end of file diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml deleted file mode 100644 index cdd1c52..0000000 --- a/.github/workflows/sync.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Sync - -on: - schedule: - - cron: "1 * * * *" - - workflow_dispatch: - -jobs: - sync-images: - runs-on: ubuntu-latest - if: github.repository == 'DaoCloud/public-image-mirror' - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up crproxy - run: | - wget https://github.com/DaoCloud/crproxy/releases/download/v0.13.0-alpha.154/crproxy_linux_amd64 -O /usr/local/bin/crproxy && chmod +x /usr/local/bin/crproxy - - - name: Sync Images to OSS&OBS - run: | - /usr/local/bin/crproxy sync --max-warn 100 ${{ secrets.STORAGE_ARGS }} --user '${{ secrets.OCI_USER }}' --list-from-file ./mirror.txt - - - name: Quick Sync Images to OSS&OBS - run: | - /usr/local/bin/crproxy sync --max-warn 10 ${{ secrets.STORAGE_ARGS }} --user '${{ secrets.OCI_USER }}' --list-from-file ./mirror-quick.txt --quick diff --git a/.github/workflows/verify-pr.yml b/.github/workflows/verify-pr.yml index 0d60572..0cef34f 100644 --- a/.github/workflows/verify-pr.yml +++ b/.github/workflows/verify-pr.yml @@ -27,22 +27,6 @@ jobs: git am -3 pr.patch && rm -rf pr.patch - - name: Verify mirror.txt image - run: | - ./hack/verify-fmt-image.sh mirror.txt || { - echo "Please run './hack/fmt-image.sh mirror.txt'" - gh pr comment "${{ github.event.pull_request.number }}" --body '请运行 `./hack/fmt-image.sh mirror.txt` 对内容进行格式化' - exit 1 - } - - - name: Verify mirror.txt sort - run: | - ./hack/verify-fmt.sh mirror.txt || { - echo "Please run './hack/fmt.sh mirror.txt'" - gh pr comment "${{ github.event.pull_request.number }}" --body '请运行 `./hack/fmt.sh mirror.txt` 对内容进行排序' - exit 1 - } - - name: Verify allows.txt sort run: | ./hack/verify-image-match.sh allows.txt || { @@ -50,10 +34,3 @@ jobs: gh pr comment "${{ github.event.pull_request.number }}" --body '请运行 `./hack/fmt-image-match.sh allows.txt` 对内容进行排序' exit 1 } - - - name: Verify Image Exists - run: | - ./hack/verify-image.sh mirror.txt https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}.patch || { - gh pr comment "${{ github.event.pull_request.number }}" --body '有镜像不存在请检查后重新提交' - exit 1 - } diff --git a/README.md b/README.md index 58c44b9..8618331 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Mirror 仓库 [Gitee](https://gitee.com/daocloud/public-image-mirror) - 白名单 & 限流 的公开信息 [#2328](https://github.com/DaoCloud/public-image-mirror/issues/2328) - 如有疑问请咨询 [#4183](https://github.com/DaoCloud/public-image-mirror/issues/4183) - 建议将拉取任务放在闲时 凌晨(北京时间 01-07 点), 其他时间段非常拥挤 +- 建议使用明确版本号的 tag, 对于 latest 这种变更后会需要重新同步 ## 背景 & 目标 @@ -46,31 +47,9 @@ m.daocloud.io/docker.io/library/busybox docker.m.daocloud.io/library/busybox ``` -## 单次单镜像同步 +## 无缓存 -**!!!!!!!!!!!!!!!!!!!!!!!!强烈推荐!!!!!!!!!!!!!!!!!!!!!!!!** - -您可以根据 [镜像同步 Issue 模板](https://github.com/DaoCloud/public-image-mirror/issues/new?labels=sync+image&template=sync-image.yml) 创建一个 Issue, 将会有机器人帮您优先主动同步指定的镜像 - -> 原先已经在下的镜像还是会继续走原来的, 需要重启 docker 再重新拉取才能走已经同步好的缓存过, 所以推荐先单次同步再尝试拉取 -> 对于 latest 这种经常内容会发生变更的 tag 变更后会需要重新同步 - -## 懒加载 - -> 仅推荐用于小于 20MiB 的镜像 -> 这条通道主要用于保持 image 是最新的, 每次拉取都会检查是否和上游保持同步 - - -如果您看到下没有进度这是由于带宽有限只要有几人在下较大的文件就会阻塞后续的下载, 可以尝试[单次单镜像同步](#单次单镜像同步) - -就算没同步也能 **直接拉取**, 初次拉取会比已经同步过的慢很多. -当前同时使用 aliyun oss 和 huawei obs 作为存储, 已经懒加载过的内容还是会出现一次未命中的情况, 使用[单次单镜像同步](#单次单镜像同步) 将会保证同步 Image 到两个存储 - -## 定期同步列表 (不推荐) - -已经太大了, 不再支持添加, 请使用[单次单镜像同步](#单次单镜像同步) - -[mirror.txt](mirror.txt) +在拉取的时候如果我们没有缓存, 将会在 [同步队列](https://queue.m.daocloud.io/status/) 添加同步缓存的任务. ## 支持前缀替换的 Registry (不推荐) @@ -78,18 +57,18 @@ docker.m.daocloud.io/library/busybox 前缀替换的 Registry 的规则, 这是人工配置的, 有需求提 Issue. -| 源站 | 替换为 | 备注 | -| ----------------------- | ----------------------------- | ------------------------------------- | -| docker.elastic.co | elastic.m.daocloud.io | | -| docker.io | docker.m.daocloud.io | | -| gcr.io | gcr.m.daocloud.io | | -| ghcr.io | ghcr.m.daocloud.io | | -| k8s.gcr.io | k8s-gcr.m.daocloud.io | k8s.gcr.io 已被迁移到 registry.k8s.io | -| registry.k8s.io | k8s.m.daocloud.io | | -| mcr.microsoft.com | mcr.m.daocloud.io | | -| nvcr.io | nvcr.m.daocloud.io | | -| quay.io | quay.m.daocloud.io | | -| registry.ollama.ai | ollama.m.daocloud.io | 实验内测中,[使用方法](#加速-ollama--deepseek) | +| 源站 | 替换为 | 备注 | +| ------------------ | --------------------- | ---------------------------------------------- | +| docker.elastic.co | elastic.m.daocloud.io | | +| docker.io | docker.m.daocloud.io | | +| gcr.io | gcr.m.daocloud.io | | +| ghcr.io | ghcr.m.daocloud.io | | +| k8s.gcr.io | k8s-gcr.m.daocloud.io | k8s.gcr.io 已被迁移到 registry.k8s.io | +| registry.k8s.io | k8s.m.daocloud.io | | +| mcr.microsoft.com | mcr.m.daocloud.io | | +| nvcr.io | nvcr.m.daocloud.io | | +| quay.io | quay.m.daocloud.io | | +| registry.ollama.ai | ollama.m.daocloud.io | 实验内测中,[使用方法](#加速-ollama--deepseek) | ## 最佳实践 diff --git a/mirror-quick.txt b/mirror-quick.txt deleted file mode 100644 index 29c9c85..0000000 --- a/mirror-quick.txt +++ /dev/null @@ -1,180 +0,0 @@ -docker.io/kindest/node:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/adminer:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/aerospike:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/almalinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/alpine:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/alt:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/amazoncorretto:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/amazonlinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/api-firewall:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/arangodb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/archlinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/backdrop:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/bash:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/bonita:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/buildpack-deps:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/busybox:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/caddy:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/cassandra:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/centos:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/chronograf:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/cirros:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/clearlinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/clefos:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/clickhouse:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/clojure:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/composer:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/consul:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/convertigo:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/couchbase:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/couchdb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/crate:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/dart:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/debian:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/docker:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/drupal:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/eclipse-mosquitto:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/eclipse-temurin:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/eggdrop:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/elasticsearch:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/elixir:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/emqx:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/erlang:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/fedora:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/flink:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/fluentd:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/friendica:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/gazebo:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/gcc:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/geonetwork:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ghost:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/golang:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/gradle:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/groovy:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/haproxy:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/haskell:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/haxe:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/hello-world:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/hitch:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/httpd:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/hylang:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ibm-semeru-runtimes:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ibmjava:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/influxdb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/irssi:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/java:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/jetty:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/joomla:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/jruby:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/julia:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/kapacitor:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/kibana:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/kong:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/lightstreamer:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/liquibase:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/logstash:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mageia:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mariadb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/matomo:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/maven:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mediawiki:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/memcached:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mongo-express:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mongo:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/monica:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mono:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/mysql:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/nats-streaming:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/nats:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/neo4j:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/neurodebian:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/nextcloud:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/nginx:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/node:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/notary:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/odoo:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/open-liberty:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/openjdk:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/oraclelinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/orientdb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/owncloud:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/percona:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/perl:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/photon:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/php-zendserver:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/php:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/phpmyadmin:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/plone:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/postfixadmin:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/postgres:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/pypy:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/python:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/r-base:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rabbitmq:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rakudo-star:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/redis:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/redmine:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/registry:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rethinkdb:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rocket.chat:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rockylinux:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ros:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ruby:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/rust:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/sapmachine:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/satosa:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/sentry:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/silverpeas:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/solr:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/sonarqube:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/spark:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/spiped:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/storm:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/swift:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/swipl:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/teamspeak:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/telegraf:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/tomcat:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/tomee:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/traefik:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/ubuntu:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/unit:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/varnish:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/websphere-liberty:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/wordpress:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/xwiki:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/yourls:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/znc:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/library/zookeeper:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/nvidia/cuda:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/ollama/ollama:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/prom/prometheus:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/pytorch/pytorch:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/rancher/rancher-agent:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -docker.io/rancher/rancher:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/busybox:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/coredns/coredns:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/coredns:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/debian-base:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/echoserver:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/etcd:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kube-apiserver:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kube-controller-manager:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kube-proxy:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kube-scheduler:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kube-state-metrics/kube-state-metrics:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kubectl:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kueue/kueue:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kwok/cluster:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/kwok/kwok:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/metrics-server/metrics-server:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/nfd/node-feature-discovery:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/nginx-slim:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/nginx:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/node-problem-detector:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/pause:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/prometheus-adapter/prometheus-adapter:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/scheduler-plugins/controller:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/scheduler-plugins/kube-scheduler:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/serve_hostname:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ -registry.k8s.io/test-webserver:^([a-z]+-)?[a-z]*[0-9]+(\.[0-9]+){1,2}$ diff --git a/mirror.txt b/mirror.txt deleted file mode 100644 index 77d4cb0..0000000 --- a/mirror.txt +++ /dev/null @@ -1,136 +0,0 @@ -docker.io/library/adminer:latest -docker.io/library/almalinux:latest -docker.io/library/alpine:latest -docker.io/library/alt:latest -docker.io/library/amazoncorretto:latest -docker.io/library/amazonlinux:latest -docker.io/library/api-firewall:latest -docker.io/library/arangodb:latest -docker.io/library/archlinux:latest -docker.io/library/backdrop:latest -docker.io/library/bash:latest -docker.io/library/bonita:latest -docker.io/library/buildpack-deps:latest -docker.io/library/busybox:latest -docker.io/library/caddy:latest -docker.io/library/cassandra:latest -docker.io/library/centos:latest -docker.io/library/chronograf:latest -docker.io/library/cirros:latest -docker.io/library/clearlinux:latest -docker.io/library/clefos:latest -docker.io/library/clickhouse:latest -docker.io/library/clojure:latest -docker.io/library/composer:latest -docker.io/library/convertigo:latest -docker.io/library/couchbase:latest -docker.io/library/couchdb:latest -docker.io/library/crate:latest -docker.io/library/debian:latest -docker.io/library/docker:latest -docker.io/library/drupal:latest -docker.io/library/eclipse-mosquitto:latest -docker.io/library/eclipse-temurin:latest -docker.io/library/eggdrop:latest -docker.io/library/elixir:latest -docker.io/library/emqx:latest -docker.io/library/erlang:latest -docker.io/library/fedora:latest -docker.io/library/flink:latest -docker.io/library/fluentd:latest -docker.io/library/friendica:latest -docker.io/library/gazebo:latest -docker.io/library/gcc:latest -docker.io/library/geonetwork:latest -docker.io/library/ghost:latest -docker.io/library/golang:latest -docker.io/library/gradle:latest -docker.io/library/groovy:latest -docker.io/library/haproxy:latest -docker.io/library/haskell:latest -docker.io/library/haxe:latest -docker.io/library/hello-world:latest -docker.io/library/hitch:latest -docker.io/library/httpd:latest -docker.io/library/hylang:latest -docker.io/library/ibmjava:latest -docker.io/library/influxdb:latest -docker.io/library/irssi:latest -docker.io/library/jetty:latest -docker.io/library/joomla:latest -docker.io/library/jruby:latest -docker.io/library/julia:latest -docker.io/library/kapacitor:latest -docker.io/library/kong:latest -docker.io/library/lightstreamer:latest -docker.io/library/liquibase:latest -docker.io/library/mageia:latest -docker.io/library/mariadb:latest -docker.io/library/matomo:latest -docker.io/library/maven:latest -docker.io/library/mediawiki:latest -docker.io/library/memcached:latest -docker.io/library/mongo-express:latest -docker.io/library/mongo:latest -docker.io/library/monica:latest -docker.io/library/mono:latest -docker.io/library/mysql:latest -docker.io/library/nats-streaming:latest -docker.io/library/nats:latest -docker.io/library/neo4j:latest -docker.io/library/neurodebian:latest -docker.io/library/nextcloud:latest -docker.io/library/nginx:latest -docker.io/library/node:latest -docker.io/library/odoo:latest -docker.io/library/open-liberty:latest -docker.io/library/openjdk:latest -docker.io/library/orientdb:latest -docker.io/library/owncloud:latest -docker.io/library/percona:latest -docker.io/library/perl:latest -docker.io/library/photon:latest -docker.io/library/php-zendserver:latest -docker.io/library/php:latest -docker.io/library/phpmyadmin:latest -docker.io/library/plone:latest -docker.io/library/postfixadmin:latest -docker.io/library/postgres:latest -docker.io/library/pypy:latest -docker.io/library/python:latest -docker.io/library/r-base:latest -docker.io/library/rabbitmq:latest -docker.io/library/rakudo-star:latest -docker.io/library/redis:latest -docker.io/library/redmine:latest -docker.io/library/registry:latest -docker.io/library/rethinkdb:latest -docker.io/library/rocket.chat:latest -docker.io/library/ros:latest -docker.io/library/ruby:latest -docker.io/library/rust:latest -docker.io/library/sapmachine:latest -docker.io/library/satosa:latest -docker.io/library/sentry:latest -docker.io/library/silverpeas:latest -docker.io/library/solr:latest -docker.io/library/sonarqube:latest -docker.io/library/spark:latest -docker.io/library/spiped:latest -docker.io/library/storm:latest -docker.io/library/swift:latest -docker.io/library/swipl:latest -docker.io/library/teamspeak:latest -docker.io/library/telegraf:latest -docker.io/library/tomcat:latest -docker.io/library/tomee:latest -docker.io/library/traefik:latest -docker.io/library/ubuntu:latest -docker.io/library/unit:latest -docker.io/library/varnish:latest -docker.io/library/websphere-liberty:latest -docker.io/library/wordpress:latest -docker.io/library/xwiki:latest -docker.io/library/yourls:latest -docker.io/library/znc:latest -docker.io/library/zookeeper:latest