Where at each layer dependencies can be managed using nix
OS X Operating system
--------------------------
xhyve hypervisor Virtual Machine runs Linux kernel
--------------------------
Alpine Linux Host system for containers, uses Nix to provision
--------------------------
Bocker Run containers
--------------------------
Alpine Linux containers Contain and run applications, uses nix
- host: must be built using packer to either support being run through
xhyve
or optionally QEMU / AMI virtual machines (e.g. deploy to production) - host: must fetch initial deps + get
nix
so that a single config file can be passed that provisions the rest of the system - bocker: needs to be forked to become more robust
- containers: possibly the same image as
host
Alpine is the best fit for a system for it's size + ease to load nix
. There's
no fluff, you build your own system.