# build-image.nix — Package the pre-built kubeclaw controller binary as an OCI image # Usage: nix-build build-image.nix && result | k3s ctr images import - { pkgs ? import {} }: let manager-bin = pkgs.stdenv.mkDerivation { name = "kubeclaw-manager"; src = ./../manager; phases = [ "installPhase" ]; installPhase = '' mkdir -p $out/bin cp $src $out/bin/manager chmod +x $out/bin/manager ''; }; in pkgs.dockerTools.streamLayeredImage { name = "kubeclaw/controller"; tag = "latest"; created = "now"; contents = [ manager-bin pkgs.cacert pkgs.tzdata ]; config = { User = "65532:65532"; Entrypoint = [ "/bin/manager" ]; ExposedPorts = { "8080/tcp" = {}; "8081/tcp" = {}; }; }; }