完全在浏览器中的容器构建

Lobsters Hottest 工具

摘要

一个完全在浏览器中使用客户端代码构建容器的Web应用程序,展示了自定义容器工具的强大功能。用户可以选择基础镜像、运行Shell脚本,并将生成的镜像导出为tar文件。

<p><a href="https://lobste.rs/s/vvb79k/fully_browser_container_builds">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/05/25 13:08

# 完全在浏览器中构建容器 来源:https://ochagavia.nl/blog/fully-in-browser-container-builds/ 容器很有趣。生态极其开放,内部机制任由任何人探索。一旦你理解了相关规范(https://github.com/opencontainers),就能解锁构建自定义工具的能力,甚至可能发现意想不到的用例¹(https://ochagavia.nl/blog/fully-in-browser-container-builds/#fn:1)。说到“意想不到的用例”,今天我有一个演示要分享:一个在浏览器中构建容器的 Web 应用,完全依赖客户端代码。 ### 试一试 眼见为实,不妨前往演示页面(https://container-builder.ochagavia.nl/)亲手构建一个容器?你将能够: 1. 选择一个基础镜像 2. 指定容器启动时运行的 shell 脚本 3. 将生成的镜像导出为 tar 文件,随后可加载到 `docker` 中 *重要提示:这是一个研究原型,请勿用于严肃用途。如果你需要生产就绪的方案,欢迎联系交流。* ### 它是如何工作的? 容器镜像本质上就是一组文件(详情参见这篇文章(https://ochagavia.nl/blog/crafting-container-images-without-dockerfiles/)中的剖析)。我们可以下载、解包、操作并重新打包它们,整个过程无需离开浏览器!只要你能在浏览器的沙盒中构建层,可能性就是无限的。 其实也没什么可多说的。如果你试用演示页面,会看到每个构建步骤的构建日志。此外,构建器的源代码位于此处(https://github.com/aochagavia/in-browser-container-builder),如果你对具体细节感兴趣的话。 ### 超越浏览器 老实说,我认为浏览器内构建容器主要是噱头,这大概也是之前没人费心记录它的原因。不过,这个实验确实有趣,也展示了自定义容器工具的能力。 问题是……虽然开发自定义工具很有趣,但通常更实际的做法是遵循成熟的路径(https://boringtechnology.club/)。因此,我们常常忘记还可以开发自定义工具,有时便妥协于 `docker build` 及其同类工具的局限性。 然而事实证明,自定义工具带来的优势有时实在难以舍弃。例如,在我近期的一个咨询项目中,我们将镜像创建时间缩短到了仅仅几秒,即使是几个 GiB 大小的镜像!当你自己构建工具时,可以控制架构、优化策略和缓存策略,从而带来**巨大的**加速。 所以……下次当你遇到容器工具的限制时,请记住我们其实有选择。只要你掌握了容器基础知识,就能构建出比 `docker build` 更能解决你问题的工具!或者,如果你愿意,也可以继续使用标准工具——但这次是出于主动选择,而非迫不得已。

相似文章

浏览器标签中的类Linux内核 - 深入解析BrowserPod架构

Lobsters Hottest

深入解析BrowserPod架构,这是一个基于WebAssembly内核的浏览器内沙箱,完全在客户端运行兼容Linux的应用程序。本文涵盖内核设计、磁盘和网络子系统,以及其在浏览器中运行诸如Claude Code等工具的能力。

WebHarbor - 我们将真实网站“对接”到本地,供网页代理使用![R]

Reddit r/MachineLearning

WebHarbor 将 15 个真实网站(Amazon、GitHub、BBC 等)打包为自包含的 Flask+SQLite 应用,置于单个 Docker 镜像中,支持亚秒级重置,专为可重复的网页智能体评估与训练而设计。该项目邀请社区贡献,以扩展到 100 多个网站,并提供合著机会。