gcr.io_mirror  by anjia0532

Docker image mirror for Google Container Registry

Created 7 years ago
1,385 stars

Top 29.2% on SourcePulse

GitHubView on GitHub
Project Summary

This project provides a mirror for Google Container Registry (GCR) and other container registries like k8s.gcr.io, quay.io, and ghcr.io. It aims to accelerate image pulls for users experiencing slow download speeds or access issues with these registries, particularly in regions with network restrictions. The primary audience is developers and users of containerized applications, especially those deploying Kubernetes or other cloud-native technologies that rely on these registries.

How It Works

The project utilizes GitHub Actions to automatically pull specified container images from upstream registries (GCR, k8s.gcr.io, etc.) and re-tags them before pushing to a Docker Hub repository (e.g., anjia0532/). This re-tagging process involves transforming the original registry path into a format compatible with Docker Hub, often by replacing slashes with dots for nested namespaces. Users can request new mirrors by creating GitHub Issues with a specific format and labels, triggering the automated workflow.

Quick Start & Requirements

To use the pre-mirrored images, simply pull them directly from Docker Hub using docker pull <mirror_image_name>. For example, to mirror k8s.gcr.io/federation-controller-manager-arm64:v1.3.1-beta.1, you would pull anjia0532/google-containers.federation-controller-manager-arm64:v1.3.1-beta.1. The project also provides shell scripts (pull-k8s-image.sh, batch-pull-k8s-image.sh) for local mirroring and re-tagging.

Highlighted Details

  • Supports mirroring from gcr.io, k8s.gcr.io, registry.k8s.io, quay.io, and ghcr.io.
  • Automated mirroring triggered via GitHub Issues with specific formatting ([PORTER]image:tag).
  • Includes scripts for local batch pulling and re-tagging of images.
  • Allows specifying target platforms for mirrored images (e.g., linux/arm64).

Maintenance & Community

The project is maintained by anjia0532. Users can request new mirrors or report issues via GitHub Issues. The project's functionality relies on GitHub Actions, and its availability is subject to GitHub's policies and the upstream registry's accessibility.

Licensing & Compatibility

The project is licensed under the BSD license. This license is permissive and allows for redistribution and use in source and binary forms, with or without modification, provided the copyright notice and disclaimer are retained. It is generally compatible with commercial use and closed-source linking.

Limitations & Caveats

The project explicitly disclaims responsibility for the security or reliability of the mirrored images, stating that it only performs re-tagging and pushing without modification. Users are advised to vet upstream images for malicious content. Availability is not guaranteed due to potential changes in Docker Hub or GitHub policies. The mirroring process is limited to one image per GitHub Issue request to prevent abuse.

Health Check
Last Commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
15
Star History
0 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Tomas Valenta Tomas Valenta(Cofounder of E2B), and
12 more.

diffusionbee-stable-diffusion-ui by divamgupta

0.1%
13k
GUI app for local Stable Diffusion on MacOS
Created 3 years ago
Updated 10 months ago
Feedback? Help us improve.