Tag: nix

什么导致这种间歇性的尼克斯build设失败,错误“太多层次的符号链接”?

我为 另一个Nixexpression式中 的Python环境编写了一个Nixexpression式,用于包含我所维护的主要Python软件集合的Docker镜像。 大部分时间构build成功。 有时候,构build失败的可能性并不大,像这样的错误非常多: rsync: readlink_stat("/nix/store/898mvvvdja9a8svkvnyid72gwggjfk92-python-2.7.13-env/lib/python2.7/site-packages/nevow/js/Nevow") failed: Too many levels of symbolic links (40) 据我所知,关于lib/python2.7/site-packages/nevow/js/Nevow一直是一个错误(相对于lib/python2.7/site-packages/nevow/js/Nevow文件和目录中的其他文件或目录)事情)。 观察这些成功和失败的构build环境是numtide/nix-builder Docker镜像。 在travis-ci上可以看到一些版本(当然,这个环节的信息会随着时间而改变)。 存储库中还有一个工具,它应该运行整个构build过程,使得原则上可重复的失败(忽略它们本质上似乎是间歇性的)。

最小化使用nix构build的Docker容器大小

我使用nix的dockerTools python应用程序打包到dockerTools ,除了图像大小以外,所有内容都很好。 Python本身大约是40Mb,如果你添加numpy和pandas ,它将会有几百兆,而应用程序代码只有〜100Kb。 我看到的唯一的解决scheme是将依赖关系包装在单独的图像中,然后inheritance主关系,不会修复大小,但至less我不需要在每次提交时都传输巨大的图像。 此外,我不知道如何做到这一点,我应该使用一些与pythonPackages.buildEnv形象,或build立与pythonPackages.buildEnv环境和附加我的​​应用程序吗? 有一些通用的解决scheme是非常好的,但python特定的将是很好的。 即使你有不完善的解决scheme,请分享。 好吧,从fromImage attr为buildImage我分裂成巨大的依赖层和小的应用程序代码层一个巨大的层。 我不知道是否有任何方法将这个胖依赖层移动到单独的图像,所以我可以分享我的其他项目?

SaltStackcaching安装包文件并稍后重新安装

当我们使用YAML文件来安装下面的包时 nginx: pkg.installed 是否有任何方便的方法来cachingSaltStack使用的安装二进制文件,并稍后用Saltstack重用它们? 通过这些caching,我们可以要求SaltStack在二进制级别上精确复制另一台机器(安装了相同的Linux发行版)的安装(configuration)过程。 我们知道还有其他工具可以用不同的方式提供这种二进制可靠性。 例如,docker图像和AWS AMI; Nix通过在其上存储二进制包和散列值来pipe理包。

如何用nixbuild立一个docker容器?

我有一个Nix包,我想捆绑成一个docker集装箱。 具体来说,我想使用Nix作为一个Dockerfile更具有performance力的替代scheme,以更快(非线性)的图像构build。 我已经find了dockerTools.buildImage文档,但我想有一个最小的工作示例,我也想知道什么最终在docker集装箱。