David Thompson <dthomps...@worcester.edu> writes: > Hello all, > > As some of you know, I wrote 'guix environment' as the first step on my > journey to use Guix to improve my (and hopefully others) software > development workflow. Now that the basics are working, I'm interested > in taking things further. In particular, I want to extend 'guix > environment' to support spawning VMs and then, hopefully, containers > (those things that the Docker folks have been talking about so much > lately). > > I did some reading about how Docker creates containers and discovered > that it uses systemd-nspawn[0] to do it. Since Guix uses dmd, using > systemd-nspawn isn't an option. Does anyone have thoughts on how we > might have similar functionality in the Guix distro? I think what we need is pflask: https://github.com/ghedo/pflask
A container is programs or full os running in an isolated environment. For a full container with rootfs, we can: build the rootfs: of Guix: by using a form of `guix system init' of Debian: by using debootstrap get it running: # pflask --chroot=rootfs /sbin/init For a lightweight container without rootfs, we can: build the activate script by `guix build' get it running: $ pflask --user=$USER activate (could run by normal user by using User namespace) > > Would an nspawn equivalent be appropriate for dmd? Or a completely > separate program? This seems to be a Linux only feature, so if we > added Isolation is archieved by using Linux namespaces, IMO dmd will work well. > a container creation program, would it make it harder to support the > Hurd? > > I'm lost and confused! Send help! :) > > -- > David Thompson > Web Developer - Free Software Foundation - http://fsf.org > GPG Key: 0FF1D807 > Support the FSF: https://fsf.org/donate