{"id":18857477,"url":"https://github.com/podboy/dockloader","last_synced_at":"2025-07-31T21:02:17.761Z","repository":{"id":243201185,"uuid":"811762815","full_name":"podboy/dockloader","owner":"podboy","description":"Docker Image Downloader.","archived":false,"fork":false,"pushed_at":"2025-02-27T01:28:55.000Z","size":17,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T15:11:33.735Z","etag":null,"topics":["docker","docker-compose","docker-image"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/podboy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-07T08:51:11.000Z","updated_at":"2025-02-27T01:28:59.000Z","dependencies_parsed_at":"2024-09-05T13:21:41.874Z","dependency_job_id":"d1af09fd-72a3-43f0-bbb4-250f141b58a6","html_url":"https://github.com/podboy/dockloader","commit_stats":null,"previous_names":["podboy/dockloader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podboy%2Fdockloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podboy%2Fdockloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podboy%2Fdockloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podboy%2Fdockloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podboy","download_url":"https://codeload.github.com/podboy/dockloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248871883,"owners_count":21175310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","docker-image"],"created_at":"2024-11-08T04:06:31.909Z","updated_at":"2025-04-14T11:31:53.188Z","avatar_url":"https://github.com/podboy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dockloader\n\n由于 [Docker Hub](https://hub.docker.com/) 及其镜像仓库在中国大陆地区被限制，您已无法在中国大陆地区通过 `docker pull` 来拉取映像。\n\n虚拟化和容器技术已成为现代软件开发、开源和云计算的基石，我们完全无法想象在没有容器镜像的情况下，应用程序的构建、测试、发布和运行会如何进行。\n\n对于普通个人用户，无论自己构建映像亦或是搭建 [Harbor](https://github.com/goharbor/harbor) 都会是一项耗时、耗力的投入与维护，也不是每个人都能轻松翻墙来拉取映像。\n\n`dockloader` 项目的初衷是寻找一种无需任何部署即可简单替代 `docker pull` 从 docker.io 拉取映像的方案。它使用 [GitHub Actions](https://github.com/features/actions) 来从 `Docker Hub` 拉取映像并上传到 [GitHub Packages](https://github.com/features/packages) 之上，这样就可以通过 ghcr.io 来拉取映像。\n\n这项工作并不复杂，当 `workflows` 被创建之后，仅需要提交一个 `PR` 即可触发，然后等待 `actions` 执行完毕即可通过 `docker pull ghcr.io/podboy/\u003cimage\u003e[:tag]` 拉取对应的映像。\n\n同时，基于 `Python(\u003e=3.10)` 开发的 [dockloader](https://pypi.org/project/dockloader/) 命令行工具为迁移映像提供支撑。\n\n## 拉取映像\n\n请首先在 [Packages](https://github.com/orgs/podboy/packages) 中查找您需要的映像是否已经存在！\n\n如果没有您需要的仓库或者特定版本，则可以提交[变更请求](#贡献指南)以更新映像。\n\n## 贡献指南\n\n由于 `Docker Hub` 的映像数量极其庞大，欢迎任何人贡献 `PR` 以帮助其他人获取到更多、更新、更好的映像。\n\n提交 `PR` 之前，请先了解[贡献原则](#贡献原则)和[配置文件格式](#config-文件)，并仔细阅读此贡献指南！\n\n### 贡献原则\n\n- 任何已添加的仓库新增 `tag` 只做格式审查\n- 无条件的接受[官方映像](https://hub.docker.com/search?image_filter=official)，只对 [library](cfgs/library) 中的新增内容做格式审查，无需提供任何额外的信息\n- 增加非官方官方映像仓库，请首先考虑开源项目自己维护的官方仓库，如果没有官方仓库也请优先考虑有良好维护（定期更新并且有版本标签，而非仅有 `latest` 标签）并被广泛使用的仓库（有一定的拉取统计量），并请在配置文件的顶部增加项目链接，以供决策是否接受该仓库：\n  - `Docker Hub`链接\n  - 仓库（`Github`或者其他源码仓库）链接\n  - 主页链接（如果存在）\n  - 文档链接（如果存在）\n  - 其他（如：演示、预览页面）链接\n\n### tag 格式\n\n映像的 tag 的格式如下：\n\n```text\n[registry_host[:port]/][namespace/]repository[:\u003ctag\u003e|@sha256:\u003cdigest\u003e]\n```\n\n`Docker Hub`的`registry`为固定的`docker.io`，`namespace`为`username`（官方映像为`library`）。\n\n### config 文件\n\n在 [dockerhub-images](https://github.com/podboy/dockerhub-images) 项目中，为每个 `username` 在 `cfgs` 文件夹中新增一个同名的文件夹，并且在 `docker.io` 中增加一行 `import \u003cusername\u003e` 以导入文件夹中的所有配置文件。\n\n每个 `repository` 均需要新增一个同名的配置文件，并放置在对应的 `username` 文件夹（官方映像为 `library` 文件夹）下。\n\n配置文件的格式为：\n\n- 所有 \"#\" 之后的内容为注释内容\n- 每行一个映像，并且将所有关联的 `tag` 合并在一起（示例：`mysql:8.0.0,8.0,8,latest`）\n- 请按从上至下由新到旧的顺序，并且 `latest` 在第一行\n\n### dockloader 命令行工具\n\n如果你对 [dockloader](https://pypi.org/project/dockloader/) 命令行工具感兴趣，请提交 `PR`。\n\n非常感谢您对本项目的支持和贡献！\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodboy%2Fdockloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpodboy%2Fdockloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodboy%2Fdockloader/lists"}