x-actions / python3-cisctl

利用Github Action将GCR镜像定时同步到dockr hub。CI tools: sync google container registry images to hub.docker.com. 示例:https://github.com/x-mirrors/gcr.io

Home Page:https://pypi.org/project/python3-cisctl/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Container Images Sync

PyPI-python3-cisctl

Github Actions for Container Images Sync

How to Use by Github Actions

    - name: Container Images Sync
      uses: x-actions/python3-cisctl@v1
      env:
        GIT_ORG: "x-mirrors"
        GIT_REPO: "gcr.io"
        GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SRC_IMAGE_LIST_URL: "https://raw.githubusercontent.com/x-mirrors/gcr.io/main/registry.k8s.io/all-repos.txt"
        DEST_REPO: "docker.io/gcmirrors"
        SRC_TRANSPORT: "docker"
        DEST_TRANSPORT: "docker"
        DEST_TRANSPORT_USER: "user"
        DEST_TRANSPORT_PASSWORD: "password"
        THREAD_POOL_NUM: 2
        AFTER_TIMEUPLOADEDMS: 0
        LOG_LEVEL: "DEBUG"

Environment Variables:

  • GIT_ORG: github org
  • GIT_REPO: github repo
  • GIT_TOKEN: github token
  • SRC_IMAGE_LIST_URL: SRC_IMAGE_LIST_URL, default: "https://raw.githubusercontent.com/x-mirrors/gcr.io/main/registry.k8s.io/all-repos.txt"
  • DEST_REPO: DEST register REPO
  • SRC_TRANSPORT: SRC TRANSPORT
  • DEST_TRANSPORT: DEST TRANSPORT
  • DEST_TRANSPORT_USER: user
  • DEST_TRANSPORT_PASSWORD: "password"
  • THREAD_POOL_NUM: sync thread pool num
  • AFTER_TIMEUPLOADEDMS: only sync images which time after timestamps

Dev and Test

  • local run
# install
pip3 install -r requirements.txt

# set env
export GIT_ORG="x-mirrors"
export GIT_REPO="gcr.io"
export GIT_TOKEN='${{ secrets.GITHUB_TOKEN }}'
export SRC_IMAGE_LIST_URL="https://raw.githubusercontent.com/x-mirrors/gcr.io/main/registry.k8s.io/all-repos.txt"
export DEST_REPO="docker.io/gcmirrors"
export SRC_TRANSPORT="docker"
export DEST_TRANSPORT="docker"
export DEST_TRANSPORT_USER="xianbinxie"
export DEST_TRANSPORT_PASSWORD="<passwords>"

# dev
export PYTHONPATH=$(pwd)
python3 cisctl/shell.py --help
python3 cisctl/shell.py help sync
python3 cisctl/shell.py sync xxx
  • tests
python3 -m unittest cisctl.tests.unit.test_skopeo.SkopeoTestCase.test_do_sync
  • Docker API Rate Limiting

  • X-RateLimit-Limit - The limit of requests per minute.

  • X-RateLimit-Remaining - The remaining amount of calls within the limit period.

  • X-RateLimit-Reset - The unix timestamp of when the remaining resets.

If you have hit the limit, you will receive a response status of 429 and the X-Retry-After header in the response.

The X-Retry-After header is a unix timestamp of when you can call the API again.

< x-ratelimit-limit: 180
< x-ratelimit-reset: 1646881125
< x-ratelimit-remaining: 180

ref

About

利用Github Action将GCR镜像定时同步到dockr hub。CI tools: sync google container registry images to hub.docker.com. 示例:https://github.com/x-mirrors/gcr.io

https://pypi.org/project/python3-cisctl/

License:Apache License 2.0


Languages

Language:Python 95.3%Language:Dockerfile 2.6%Language:Shell 2.1%