V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guanzhangzhang
V2EX  ›  宽带症候群

有无好用的制品库,或者 gh 代理

  •  
  •   guanzhangzhang · 2022-06-05 15:27:14 +08:00 · 1683 次点击
    这是一个创建于 662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己编译了 op 固件,是推送到阿里云 docker 镜像仓库上,目前在线升级脚本是借助 docker pull 下载包含固件的 docker 镜像后 cp 固件和 sha256sums 出来,然后执行在线升级逻辑。 在线升级造成的一些限制就是初次 rootfs 很小(升级的时候会扩容),而 docker 占据很大容量:

    root@OpenWrt:~# du -shx /*
    ...
    203.0M	/overlay
    403.5M	/rom
    ...
    root@OpenWrt:/overlay/upper/usr/bin# du -shx *
    36.8M	containerd
    6.8M	containerd-shim
    8.8M	containerd-shim-runc-v1
    8.8M	containerd-shim-runc-v2
    16.2M	containerd-stress
    18.7M	ctr
    15.3M	dnet
    30.6M	docker
    60.0K	docker-init
    1.6M	docker-proxy
    45.0M	dockerd
    24.0K	tini
    

    调整了 ROOTFSZISE 暂时是规避这个问题,但是这个不是优雅的解决,可能维护的其他设备的配置无法跑起 docker 。 所以有没有啥符合我需求的制品库,我可以构建后把固件推送上去,然后我固件里带的升级脚本 curl 或者 wget 不需要验证就能下载到,之前的 ghproxy 都不稳定。

    第 1 条附言  ·  2022-06-05 15:58:04 +08:00
    可能部分人没看懂需求。不是我个人用,是很多人用我的固件,要求任何使用我固件的升级脚本不带认证信息 curl 或者 wget 下载到固件,和 docker 没有任何关系。。。
    第 2 条附言  ·  2022-06-06 22:58:07 +08:00
    结帖,已经 api 下载 docker blob 的 layer 了,解压下就行了
    7 条回复    2022-06-06 13:13:30 +08:00
    Buges
        1
    Buges  
       2022-06-05 15:48:49 +08:00 via Android
    docker 镜像仓库可以不用 docker pull ,而是直接下载,都是 tar.gz 包而已。
    homebrew 就是用这种方式分发预编译 artifacts 的。
    guanzhangzhang
        2
    guanzhangzhang  
    OP
       2022-06-05 15:56:00 +08:00
    可能部分人没看懂需求。不是我个人用,是很多人用我的固件,要求任何使用我固件的升级脚本不带认证信息 curl 或者 wget 下载到固件,和 docker 没有任何关系。。。
    guanzhangzhang
        3
    guanzhangzhang  
    OP
       2022-06-05 15:57:43 +08:00
    @Buges 我知道 docker 镜像是走 http ,但是那个层貌似需要解密还是转换来着,你有相关资料吗
    Buges
        4
    Buges  
       2022-06-05 16:30:38 +08:00 via Android
    @guanzhangzhang 每一层都是一个 tar 打包的 rootfs ,正常情况下 docker 会一层层的释放再用 overlay 叠加起来。
    相关格式还有一个清单,里面有一些元信息,具体可以去看 OCI 的标准。
    没啥需要转换的,如果你都打包到一层里面直接下下来解压就好了。
    imzcg2
        5
    imzcg2  
       2022-06-05 22:46:05 +08:00
    国内 git 仓库用 raw
    Kinnice
        6
    Kinnice  
       2022-06-06 10:22:41 +08:00 via Android
    直接放到对象存储里面不就可以了,oss 之类的
    放三个文件 固件,sha256sum ,latest.txt (放最新版本的固件名称,或者一些公告什么信息)
    guanzhangzhang
        7
    guanzhangzhang  
    OP
       2022-06-06 13:13:30 +08:00
    @Kinnice oss 会被人恶意刷的,我昨天找了个 ghproxy ,后面试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2849 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 15:20 · PVG 23:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.