72 lines
1.3 KiB
Nix
72 lines
1.3 KiB
Nix
{
|
|||
|
|
bashInteractive,
|
||
|
|
dockerTools,
|
||
|
|
git,
|
||
|
|
lib,
|
||
|
|
nix,
|
||
|
|
nix-output-monitor,
|
||
|
|
pkgs,
|
||
|
|
podman,
|
||
|
|
writeShellApplication,
|
||
|
|
|
||
|
|
name,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
let
|
||
|
|
policy = (
|
||
|
|
pkgs.writeTextFile {
|
||
|
|
name = "policy.json";
|
||
|
|
text = ''
|
||
|
|
{
|
||
|
|
"default": [{"type": "insecureAcceptAnything"}]
|
||
|
|
}
|
||
|
|
'';
|
||
|
|
destination = "/etc/containers/policy.json";
|
||
|
|
}
|
||
|
|
);
|
||
|
|
activate = writeShellApplication {
|
||
|
|
name = "activate";
|
||
|
|
runtimeInputs = [ bashInteractive ];
|
||
|
|
text = ''
|
||
|
|
mkdir -p /etc/containers
|
||
|
|
cp ${policy}/etc/containers/policy.json /etc/containers/policy.json;
|
||
|
|
bash "$@"
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
in
|
||
|
|
(import "${nix.src.outPath}/docker.nix" {
|
||
|
|
inherit pkgs;
|
||
|
|
name = name "builder";
|
||
|
|
tag = "latest";
|
||
|
|
|
||
|
|
bundleNixpkgs = false;
|
||
|
|
Cmd = [
|
||
|
|
(lib.getExe activate)
|
||
|
|
];
|
||
|
|
extraPkgs = [
|
||
|
|
dockerTools.caCertificates
|
||
|
|
nix-output-monitor
|
||
|
|
podman
|
||
|
|
policy
|
||
|
|
];
|
||
|
|
flake-registry = (pkgs.formats.json { }).generate "flake-registry.json" ({
|
||
|
|
version = 2;
|
||
|
|
flakes.nixpkgs = {
|
||
|
|
exact = true;
|
||
|
|
from = {
|
||
|
|
id = "nixpkgs";
|
||
|
|
type = "indirect";
|
||
|
|
};
|
||
|
|
to = "${pkgs.path}";
|
||
|
|
};
|
||
|
|
});
|
||
|
|
gitMinimal = git; # We want the full version in this
|
||
|
|
maxLayers = 111;
|
||
|
|
nixConf = {
|
||
|
|
experimental-features = [
|
||
|
|
"nix-command"
|
||
|
|
"flakes"
|
||
|
|
];
|
||
|
|
};
|
||
|
|
})
|