diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix new file mode 100644 index 000000000000..418f3259178a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix @@ -0,0 +1,57 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, makeWrapper +, installShellFiles +, buildkit +, cni-plugins +, extraPackages ? [ ] +}: + +buildGoModule rec { + pname = "nerdctl"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "containerd"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-cqIIpdkQ6DF7DKXvwCoJBQKG0+lL8iP/Vx0q7rL8prg="; + }; + + vendorSha256 = "sha256-0+k1e7Sn+NYGAJDVUbUm0oedc1t2blezUhsjDIuIKvA="; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + ldflags = let t = "github.com/containerd/nerdctl/pkg/version"; in + [ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.Revision=<unknown>" ]; + + # Many checks require a containerd socket and running nerdctl after it's built + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/nerdctl \ + --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \ + --prefix CNI_PATH : "${cni-plugins}/bin" + + installShellCompletion --cmd nerdctl \ + --bash <($out/bin/nerdctl completion bash) + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/nerdctl --help + $out/bin/nerdctl --version | grep "nerdctl version ${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://github.com/containerd/nerdctl/"; + changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}"; + description = "A Docker-compatible CLI for containerd"; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + platforms = platforms.linux; + }; +} |