如何使用nix构建docker容器?

2024-06-23

我有一个 Nix 包,我想将其捆绑到 docker 容器中。

具体来说,我想使用 Nix 作为更具表现力的替代方案Dockerfile拥有更快的(非线性)图像构建。

我找到了有关的文档dockerTools.buildImage https://nixos.org/nixpkgs/manual/#ssec-pkgs-dockerTools-buildImage但我想要一个最小的工作示例,并且我还想知道 docker 容器中最终会包含什么。


以下示例包(使用contents =) the pkgs.nginxnixpkgs 打包到 docker 容器中:

docker load --input $(nix-build -E 'with import <nixpkgs> {}; pkgs.dockerTools.buildImage { name = "nix-htop"; contents = pkgs.htop; config = { Cmd = [ "/bin/htop" ]; }; }')

然后你可以运行它

docker run -it nix-htop

容器的内容非常少,只有一个 Docker 层:

docker save nix-htop | tar x --to-stdout --wildcards '*/layer.tar' | tar t --exclude="*/*/*/*"
./
./bin/
./bin/htop
./share/
./share/applications/
./share/man/
./share/pixmaps/
nix/
nix/store/
nix/store/gi5vvbjawzw1bakiksazbd50bvfmpmmc-ncurses-6.0/
nix/store/pa5nkrpd5hg5qp1dc4gmbd2vdhn1y3x2-htop-2.0.2/
nix/store/vn6fkjnfps37wa82ri4mwszwvnnan6sk-glibc-2.25/

只有 htop 及其依赖项(glibc、ncurses),在我的情况下为 26 MB。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用nix构建docker容器? 的相关文章

随机推荐

  • 暂时禁用所有当前活动的 jQuery 事件处理程序

    我正在做一个TD双击可编辑表格元素 document on dblclick table gt tbody gt tr gt td cell function e if e which 1 e shiftKey e altKey e ctr
  • ORA-1843: 更新记录时不是有效的月份

    我想出于某种目的更新我的日期列 已存储在列中的值如下所示 18 06 14 在更新时如果我不更新任何东西并调试和检查它 它的格式为2014 06 18T00 00 00 因此 在更新时 我在程序中收到如下错误 ORA 1843 月份无效 下
  • 在 Windows 上使用 Mono

    我知道这听起来很愚蠢但是 我发现了this http do davebsd com 应用程序是在 Mono 上编写的 并且是开源的 在查看源代码时 我发现这两个 using 指令阻止了我 using Gdk using Mono Unix
  • 使用 Delphi 的 7-Zip?

    我想使用 Delphi 的 7 Zip DLL 但一直找不到合适的文档或示例 有谁知道如何使用 Delphi 的 7 Zip DLL 自版本 1 102 起JEDI 代码库 http wiki delphi jedi org index p
  • 如何通过 Ninject 使用方法注入?

    我有一个类需要使用 IRepository 作为其类中的一个方法 理想情况下 我想避免必须将这种依赖关系解析到类的构造函数中 因此我在 Ninject 中发现了方法级注入 并且想知道这是如何工作的 我明白如何设置它 我很困惑的是如何调用它
  • 在 Ubuntu 14.04.3 中运行 oracle imp / exp

    安装 oracle 软件包后 oracle instantclient12 2 basiclite 12 2 0 1 0 1 x86 64 rpm and oracle instantclient12 2 tools 12 2 0 1 0
  • BinaryWriter 和 BinaryFormatter.Serialize 之间的区别?

    我是对象序列化的新手 在学习如何使用读取和写入文件 反序列化和序列化 的过程中BinaryFormatter 我碰到BinaryReader and BinaryWriter 它似乎在做同样的事情 之间有一些细微的区别吗BinaryForm
  • 如何在数组类型上调度多方法

    我正在研究一种多方法 需要更新序列中一堆不同事物的哈希值 看起来相当简单 直到我尝试输入 X 数组的类型 defmulti update hash class 2 type byte 1 gt java lang Byte defmetho
  • git,Heroku:预接收挂钩被拒绝

    我正在设置 git 存储库并尝试将其链接到 Heroku 当我运行命令时 git push heroku master 我收到 Counting objects 7 done Delta compression using up to 2
  • 如何在 Windows 窗体 C# 中将扩展 ASCII 转换为十进制?

    我正在编写一个Windows应用程序 我在转换时遇到问题扩展 ASCII 128 256 到其十进制等值 当我从 jar 文件中接收到扩展 ASCII 例如 时 它会像这样进入 C 应用程序 我可以知道如何将其转换为十进制等值 即 140
  • C# Linq 平均

    我有一个包含类似于以下数据的表 Group TimePoint Value 1 0 1 1 0 2 1 0 3 1 1 3 1 1 5 我想投影一个这样的表 Group TimePoint AverageValue 1 0 2 1 1 4
  • System.Net.NetworkInformation IPv4Mask 无法在 MonoTouch 中工作?

    我使用以下代码获取 iPhone 上当前可用的网络接口列表 foreach NetworkInterface l objNetworkInterface in NetworkInterface GetAllNetworkInterfaces
  • 使用 FragmentStatePagerAdapter 从 ViewPager 动态删除项目

    围绕这个话题有很多讨论 ViewPager PagerAdapter 不更新视图 https stackoverflow com a 7287121 494659 动态更新ViewPager https stackoverflow com
  • 缓存隐式解析

    为了减少项目的编译时间 我缓存了通过隐式查找解析的某些类型类 但这看起来有点麻烦 因为直接的实现不起作用 scala gt implicit val x String implicitly String x String null 隐式查找
  • SQL Server JOIN 缺少 NULL 值

    假设我有以下 2 张表 Table1 Table2 Col1 Col2 Col3 Col1 Col2 Col4 a b c a b d e
  • 如何删除其他目录中不存在的文件?

    我有两个目录 我们称它们为src and build 我的构建系统可以正常工作 因此对于所有具有更新时间的文件src比在build它从复制文件src to buid并进行一些转换 缩小 版本控制等 否则会跳过 因为文件被认为是最新的 然而
  • 在 python 中将 url 添加到 mysql 行

    我正在尝试使用 python 和 MySQLdb 库将 url 添加到 mysql 中的文本行 但是当我运行代码时 它说我的 sql 语法中有错误 你能告诉我我做错了什么吗 这是我的代码 import MySQLdb as mdb conn
  • 如何在 Safari 中调试嵌入式 JavaScript

    编辑 根据 dmi3y 的建议 更新了标题 将 内联 更改为 嵌入 以更好地反映问题的性质 在 Chrome 中 我通常通过在 JS 文件中设置断点来调试 JS 但是 Chrome 还允许您在存在内联 JS 的情况下使用实际文档执行此操作
  • 在 Windows 上使用 asprintf()

    我编写了一个在Linux上完美运行的C程序 但是当我在Windows上编译它时 它给我一个错误 说asprintf 未定义 它应该是 stdio 库的一部分 但似乎许多编译器不包含它 我可以在 Windows 上使用哪个编译器来使用 asp
  • 如何使用nix构建docker容器?

    我有一个 Nix 包 我想将其捆绑到 docker 容器中 具体来说 我想使用 Nix 作为更具表现力的替代方案Dockerfile拥有更快的 非线性 图像构建 我找到了有关的文档dockerTools buildImage https n