forked from mirrors/nixpkgs
Merge pull request #47917 from arianvp/fix-imperative-containers
Fix imperative containers
This commit is contained in:
commit
7fb45271b2
|
@ -73,7 +73,8 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To change the configuration of the container, you can edit
|
There are several ways to change the configuration of the container. First,
|
||||||
|
on the host, you can edit
|
||||||
<literal>/var/lib/container/<replaceable>name</replaceable>/etc/nixos/configuration.nix</literal>,
|
<literal>/var/lib/container/<replaceable>name</replaceable>/etc/nixos/configuration.nix</literal>,
|
||||||
and run
|
and run
|
||||||
<screen>
|
<screen>
|
||||||
|
@ -86,7 +87,8 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
|
||||||
<xref linkend="opt-services.httpd.enable"/> = true;
|
<xref linkend="opt-services.httpd.enable"/> = true;
|
||||||
<xref linkend="opt-services.httpd.adminAddr"/> = "foo@example.org";
|
<xref linkend="opt-services.httpd.adminAddr"/> = "foo@example.org";
|
||||||
<xref linkend="opt-networking.firewall.allowedTCPPorts"/> = [ 80 ];
|
<xref linkend="opt-networking.firewall.allowedTCPPorts"/> = [ 80 ];
|
||||||
'
|
'
|
||||||
|
|
||||||
# curl http://$(nixos-container show-ip foo)/
|
# curl http://$(nixos-container show-ip foo)/
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">…
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">…
|
||||||
</screen>
|
</screen>
|
||||||
|
@ -95,13 +97,11 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that in previous versions of NixOS (17.09 and earlier) one could also
|
Alternatively, you can change the configuration from within the container
|
||||||
use all nix-related commands (like <command>nixos-rebuild switch</command>)
|
itself by running <command>nixos-rebuild switch</command> inside the
|
||||||
from inside the container. However, since the release of Nix 2.0 this is not
|
container. Note that the container by default does not have a copy of the
|
||||||
supported anymore. Supporting Nix commands inside the container might be
|
NixOS channel, so you should run <command>nix-channel --update</command>
|
||||||
possible again in future versions. See
|
first.
|
||||||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/40355">the github
|
|
||||||
issue</link> for tracking progress on this issue.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -22,6 +22,13 @@ with lib;
|
||||||
# Not supported in systemd-nspawn containers.
|
# Not supported in systemd-nspawn containers.
|
||||||
security.audit.enable = false;
|
security.audit.enable = false;
|
||||||
|
|
||||||
|
# Make sure that root user in container will talk to host nix-daemon
|
||||||
|
environment.etc."profile".text = ''
|
||||||
|
export NIX_REMOTE=daemon
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||||
# Execute commands via the root shell.
|
# Execute commands via the root shell.
|
||||||
$machine->succeed("nixos-container run $id1 -- uname") =~ /Linux/ or die;
|
$machine->succeed("nixos-container run $id1 -- uname") =~ /Linux/ or die;
|
||||||
|
|
||||||
|
# Execute a nix command via the root shell. (regression test for #40355)
|
||||||
|
$machine->succeed("nixos-container run $id1 -- nix-instantiate -E 'derivation { name = \"empty\"; builder = \"false\"; system = \"false\"; }'");
|
||||||
|
|
||||||
# Stop and start (regression test for #4989)
|
# Stop and start (regression test for #4989)
|
||||||
$machine->succeed("nixos-container stop $id1");
|
$machine->succeed("nixos-container stop $id1");
|
||||||
$machine->succeed("nixos-container start $id1");
|
$machine->succeed("nixos-container start $id1");
|
||||||
|
|
Loading…
Reference in a new issue