九维我操你爹
https://news.ycombinator.com/item?id=45903598

Users Stuck in YubiKey Re-Enrollment Loop on X (Twitter)

招笑公司又在生产环境上测试变更了(害我把梯子和浏览器的问题都排除了一遍,浪费时间
因为有些个人需求被上游拒绝合并,外加上游提供的 mise docker 镜像太大,就开始在自己 fork 的仓库里构建好二进制和镜像自用
本来一切都已经步入正轨,谁想到今天无聊查了下收费规则,发现 macOS runners 的收费是 Linux runners 的十倍。这下睡不着了
哎,这个不难,不就是交叉编译一下嘛,看我两三下改完——然后就从十点搞到了现在🤡
比起这种望山跑死马的折磨,我更宁愿面对根本无解的问题,这样至少我可以爽快地放弃
但是 macOS 上开发的体验一直都是:行进的方向非常明确,但就是寸步难行

复杂的技术问题不说,举个简单的例子:我把已经调通的流水线复制一份出来给 macOS runner 用,提前查好了上面软件栈,把缺少的包提前装好,还注意到镜像里装的 bash 是 3.x 的版本,特意去检查了一下我写的脚本是否兼容这么老的版本(bash 7 年前就发了 5.0 版本,3.x 版本粗略搜了下是 14 年前的古董😅
按理说我这样已经算是有很强的意识了,但是丢上去跑了半个多小时以后我发现流水线挂了,一看是 BSD install 不兼容我给 POSIX install 传的参数

哦,忘了还有这茬——几乎每次迁移什么东西到 macOS 上我都会因为这种一时间没想到的坑鬼打墙。我实在不是什么超级大脑,没法在念头一转之间把这辈子踩过的所有坑都想一遍
当然了这种问题都是情有可原的嘛,谁让 Unix 的「霸王条款」让苹果没法站在开源项目的肩头吸血呢。我不爽的是专有系统又不止你一个,在 Windows 上交叉编译我花的时间踩的坑都要多得多,但至少从来没浪费过时间在什么 BSD/Unix 之争呀 SDK 不许再分发所以干正事之前需要先花数倍的时间在本地把编译环境搞起来之类的问题😅

你不愿意开放你那个狗屎代码没问题,至少为了替你完善生态的开发者着想,替他们行点方便💩
https://t.me/xixihealth/17666
https://t.me/c/1459082815/946

作为一个有段时间没活跃的 nerdctl maintainer 出来说两句

nerdctl 实际上是作为 containerd 一个 CTL 来作为初始化的开发。定位改为 Docker 的替代实际上是很后面的事情了
而要做兼容的事情实际上要考虑的就很多了,我自己做过很多很 dirty 的活包括不仅限于
1. 兼容 Docker 随机 port 的行为
2. 清理环境
3. 处理 DNS 相关的问题
4. 修 registry 的行为

而 nerdctl 很多东西实际上受限于无法有 Docker 一样的 daemon ,搞个 bridge ,再搞个 DNS 会导致很多东西很难做
比如我之前想做的参考 podman 一样做一个 DNS CNI(

同时 nerdctl 很多机制需要依赖 containerd 的 plugin 来做回调,比如 logger driver 就是如此实现的,所以会有人吐槽为什么我记录个日志还得在内存里 load 一个 nerdctl 233333

而局限于 CNI 做事是主观+客观因素双重因素导致的。nerdctl 试图在 ctd 以及 OS 这一层做的尽可能的兼容(PS nerdctl 是支持 freebsd 的东西的(XDD),而且要考虑 rootless 以及nerdctl 被各种工具开箱集成这一事实(比如 mac 上的虚拟机,第三方集成等),最后 CNI 可能是带着镣铐下的最优解

所以 nerdctl 并不是 docker 的完全替代品我是完全赞成的。但是这个局面只能说是多种因素共同作用

等我有时间我再想想网络这块能怎么样做的更好.jpg 囍频道
苹果测试工程师的日常
我们只是用 nerdctl 起 A、B 两个容器而已,不需要很复杂的功能。但是 nerdctl 和 docker 之间有很多行为上不一致的地方,踩坑踩麻了……(不是 bug,是一开始就这么设计的
后来随手发的一条有幸被 saka 回了。回过头来看自己都觉得之前的频道消息没把自己的想法讲清楚,所以在炎上被骂之前先叠个甲,重新梳理下我想表达什么东西
首先阅读理解一下引用的部分哈,我只是想表达两件事:
1. 我完全理解 nerdctl 为啥会有这些和 docker-ce engine 不同的行为。一些 docker 做得不太好的设计,nerdctl 是完全有理由不去继承的。何况 containerd 和 docker 并不是两种相同的东西,在 containerd 之上构建的东西经常需要去实现很多以前 docker 自己底层替你做好的事
2. 但是站在用户视角,从 docker 切换到 nerdctl 以后一些很简单的事情都变得很麻烦了。以前跨网桥的两个容器默认可以互相访问,迁移过来却遇到了问题。而在设法解决这个问题时,照着官方文档创建关闭 firewall cni 插件的网桥的说明操作,没有跑通,忍不住吐槽两句我觉得也是人之常情?

总结一下,我不觉得 nerdctl 有什么问题。不然肯定积极地尝试提 pr 修复。就算我技术能力不行,至少也可以去骚扰 saka 不是?(笑
我也不是马后炮,在调研过程中翻 issue 的时候早就看到了这个熟悉的名字。而且我和 saka 也互相交换过联系方式,并不觉得找他帮忙有什么心理或技术上的障碍

推上有 nerdctl 的 maintainer 也回过我,说 nerdctl 算是技术实验场,所以不应该把 nerdctl 看作是 docker 的替身。我现在对这一点完全同意,但是在遇到这次事之前,我以为 nerdctl【首先】是 docker 的替身,【此外】还有一些新的功能
这个看法是不准确的,所以最开始发这一条,说 nerdctl 厨体验卡到期,就是这个意思。通过公司安排的调研任务,我对 nerdctl 的错误认知被改正过来了。从今往后,是又爱又恨的新篇章
苹果测试工程师的日常
什么垃圾,根本更新不了
同一个热点把工作电脑和手机都更新完了,不是热点的问题
Back to Top