跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[分享创造] 为什么我们提供了新的公共镜像库

发表于

转自建木博客-

另外一篇为什么我们不支持手工上传镜像

image1

众所周知,建木在项目初期就已经完成了“自举”,就是使用建木完成自身的全部 CI/CD/CO 等自动化流程。 另外,由于建木本身和官方支持的节点都是打包为镜像发布到 Docker Hub 上,结果最近半年我们频繁碰到如下场景。

场景一: “CI 服务的镜像构建步骤又失败了!已经重试 10 次了!!” “什么原因?” “原始镜像死活下载不下来啊!” “为什么不用国内的 mirror ?” “用了啊!用了反而更慢了!!”

场景二: “新应用今天部署不了啦!” “why ?” “今天从 Docker Hub 下载太频繁,已经触发了 Rate limit 。6 个小时之后再试吧!” “……”

以上场景并非只有建木会碰到,大部分在国内使用容器镜像的个人或组织都会碰到。虽然可以用各种方式绕过,但体验非常之差。因此,我们检查了一下根本原因。

原因分析 为啥直接从 Docker Hub 下载会失败 由于 Docker Hub 与 Github 等服务一样广泛使用了 S3 和 CDN 等服务,因此当下载请求被指向某些因为不可知原因而无法访问的网段时,会出现无法连接的情况。

为啥用国内的 Mirror 也不行 国内某些大厂提供的 Mirror 本质上是个缓存服务,因此当我们拉取的镜像不是常用镜像或因为缓存过期已经被清除时,Mirror 会重新从 Docker Hub 拉取镜像创建缓存,然后再响应下载请求。所以会用户会感觉比直接从 Docker Hub 下载的速度还要慢……

从 Mirror 下载的镜像内容未更新

image2

某些 Mirror 会连镜像的“Image Manifest/index”文件一起缓存,导致用户已经更新了 Docker Hub 上的镜像,但 Mirror 并未更新。

解决方案 基于以上原因,我们需要一个可以在国内工作良好的新的公共镜像库。因此,我们已经在已有的建木 Hub 基础上,新增了 OCI 镜像库的服务模块,并且提供了从代码库中的 Dockerfile 自动构建镜像的功能(自动构建能力由建木提供)。 注意:是镜像库,不是 Mirror

与之前一样,建木自身的镜像发布会先迁移到自己的镜像库里。同时也为国内用户提供一个替代方案。与 Docker Hub 一样,用户的公共仓库数量不限,永久免费。

目前服务还处于公测期间,功能还在陆续迭代中。如果你的项目与我们类似,也需要一个公共仓库发布给国内用户,不妨来试试!建木 Hub

Featured Replies

No posts to show

创建帐户或登录来提出意见

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.