有没有办法输出我的configuration.nix中的所有configuration选项?

我想在nixos上设置docker。 我可以通过system.systemPackages安装它,但我无法得到它自动启动(services.jetty没有定义)

我不想问这里的每一个选项,所以我想知道是否有文档或方法来打印服务下的每个选项?

我看了看,也找不到任何东西

回答你的问题的标题; NixOS nixos-option实用程序将让您查询您的configuration.nix评估的属性。

我不知道NixOS是否明确地提供了一种打印整个事物的方法,但是你可以用NixOS在内部使用相同的函数来很容易地自己完成这个工作来评估configuration.nix。 IIRC你需要用{ modules = [ /etc/nixos/configuration.nix ]; } { modules = [ /etc/nixos/configuration.nix ]; } 。 然后,您可以使用Nix内置的toXMLfunction将评估的configuration设置为可打印的string。 builtins.toXML--xml标志到nix-instantiate都是访问该function的可能方式。

我应该说,如果你这样做会有很多的XML。

但是我认为这其实不是你问题的主体。 这听起来像你只是想检查所有可用的预定义NixOS服务是什么? NixOS手册的configuration选项附录列出了该信息。

但是,如果您是在Jetty的服务单位之后,那么目前没有一个服务单位。

我对Jetty一无所知,但我想你可以很容易地写出你自己的(我为自己写了一些,发现它相当简单)。 NixOS wiki上的这个条目给出了一个nixos systemd服务单元的例子。 您还可以查看所有其他NixOS模块以了解它们的写法。 当然也可以查阅相关的systemd手册页。

在附注中,如果你这样做,你会发现你不需要在systemPackages声明一个模块二进制文件,因为它的path被拉进了它的systemd单元,所以你只需要在那里与它交互。