urbit/nix/ops/default.nix
Brendan Hay 122e01b13d
build: allow baking multiple pills into docker images
By baking (potentially) multiple pills into an image, we can provide
mainnet vs ropsten images. It is still up to the operator to pass
along the pill path(s) to the entrypoint. For example, using Docker:

docker run --tty urbit -B /share/brass.pill -J /share/ivory.pill ...

The main .image attribute still uses only the solid pill, and image-ropsten
has been provided with brass and ivory pills.

Additionally herb has been added to the image for convenience.
2019-12-18 12:02:18 +01:00

87 lines
1.5 KiB
Nix

{ pkgs ? import ../nixpkgs.nix, debug ? false }:
let
tlon = import ../pkgs { inherit pkgs; };
arvo = tlon.arvo;
arvo-ropsten = tlon.arvo-ropsten;
herb = tlon.herb;
urbit = if debug then tlon.urbit-debug else tlon.urbit;
bootbrass = ../../bin/brass.pill;
bootsolid = ../../bin/solid.pill;
rawzod = import ./fakeship {
inherit pkgs herb urbit;
pill = bootsolid;
ship = "zod";
arvo = null;
};
ropzod = import ./fakeship {
inherit pkgs herb urbit;
pill = bootsolid;
ship = "zod";
arvo = arvo-ropsten;
};
zod = import ./fakeship {
inherit pkgs herb urbit arvo;
pill = bootsolid;
ship = "zod";
};
bus = import ./fakeship {
inherit pkgs herb urbit arvo;
pill = bootsolid;
ship = "bus";
};
in
rec {
test = import ./test {
inherit pkgs herb urbit;
ship = bus;
};
solid = import ./solid {
inherit pkgs herb urbit arvo;
pier = rawzod;
};
brass = import ./brass {
inherit pkgs herb urbit arvo;
pier = zod;
};
brass-ropsten = import ./brass {
inherit pkgs herb urbit;
arvo = arvo-ropsten;
pier = ropzod;
};
ivory = import ./ivory {
inherit pkgs herb urbit arvo;
pier = zod;
};
ivory-ropsten = import ./ivory {
inherit pkgs herb urbit;
arvo = arvo-ropsten;
pier = ropzod;
};
image = import ./image {
inherit pkgs herb urbit solid;
};
image-ropsten = import ./image {
inherit pkgs herb urbit;
brass = brass-ropsten;
ivory = ivory-ropsten;
};
}