Можно ли запустить службу в nix-shell

Я работаю под NixOS, и пока мне это нравится.

Для своих проектов кодирования я пытаюсь создать отдельные среды разработки. Так, например, для моего проекта Scala/node.js я написал default.nix для nix-shell:

with import <nixpkgs> {}; {
    tarifs2Env = stdenv.mkDerivation {
        name = "webapp";
        buildInputs = with pkgs; [ 
            sbt 
            nodejs
            nodePackages.gulp
        ];

        shellHook = ''
        '';
    };
}

Все идет нормально. Теперь я хотел бы добавить базу данных, например, posgtres. Есть ли способ добавить сервис в nix-shell?


person KaC    schedule 24.09.2016    source источник


Ответы (1)


Я думаю, что https://github.com/chrisfarms/nixos-shell должен делать именно то, что вы повторно после. Я не использовал его сам, но, насколько я понимаю, он работает, беря файл configuration.nix, который описывает службы, которые вам нужны, затем создает конфигурацию в эфемерном контейнере NixOS и помещает вас в оболочку в контейнере.

person brocking    schedule 26.09.2016
comment
Не знала, выглядит отлично! Спасибо. - person KaC; 26.09.2016
comment
Никакой активности через 3 года, но я бы предположил, что nix-shell представляет очень минимальную форму изоляции, сосредоточенную только на путях файловой системы зависимостей (на самом деле он может не использовать chroot для этого), в то время как nix-контейнер (или его варианты) начинает изолировать ресурсы ОС (в большинстве случаев вам нужны только первые, а в случае приложений — вторые). Для nix-shell должна быть возможность построить контейнер и поместить вас в этот контейнер. Одна из возможностей — интегрироваться в Docker. - person CMCDragonkai; 12.07.2017