Arion used to prefer an external docker-compose, but that exposes
users to potential incompatibilities.
For example, the docker-compose on Ubuntu 18.04 (LTS) doesn't seem
to handle Dockerfiles in the Nix store properly.
Also adds some documentation to celebrate that we can now - with ease - verbally
distinguish between composition-level modules and service-level modules.
This makes the Nix files work like todomvc-nix but a little simplified.
Also it pins nixpkgs because for development (tests), you need -unstable
instead of release-18.09 so that's automatic now.
Broken by f503e556eaFixes#12
Cause of the problem:
nix-instantiate uses the store in read-only mode by default, unlike
nix-build.
Import from derivation requires a read-write store, causing the
command to fail with a (bad) error message. This only happened when
the derivation wasn't already built. This did not occur often
because commands like arion up use nix-build and therefore typically
mask the problem on subsequent invocations.
To reproduce the problem, garbage collect, then arion ps.