@@ -23,11 +23,12 @@ import (
2323 "os"
2424 "text/template"
2525
26- "github.com/containerd/nerdctl/pkg/api/types"
2726 "github.com/containerd/nerdctl/pkg/clientutil"
2827 "github.com/containerd/nerdctl/pkg/formatter"
2928 "github.com/containerd/nerdctl/pkg/infoutil"
3029 "github.com/containerd/nerdctl/pkg/inspecttypes/dockercompat"
30+ "github.com/containerd/nerdctl/pkg/rootlessutil"
31+ "github.com/sirupsen/logrus"
3132 "github.com/spf13/cobra"
3233)
3334
@@ -66,7 +67,17 @@ func versionAction(cmd *cobra.Command, args []string) error {
6667 }
6768 }
6869
69- v , vErr := versionInfo (cmd , globalOptions )
70+ address := globalOptions .Address
71+ // rootless `nerdctl version` runs in the host namespaces, so the address is different
72+ if rootlessutil .IsRootless () {
73+ address , err = rootlessutil .RootlessContainredSockAddress ()
74+ if err != nil {
75+ logrus .WithError (err ).Warning ("failed to inspect the rootless containerd socket address" )
76+ address = ""
77+ }
78+ }
79+
80+ v , vErr := versionInfo (cmd , globalOptions .Namespace , address )
7081 if tmpl != nil {
7182 var b bytes.Buffer
7283 if err := tmpl .Execute (& b , v ); err != nil {
@@ -102,13 +113,16 @@ func versionAction(cmd *cobra.Command, args []string) error {
102113 return vErr
103114}
104115
105- // versionInfo may return partial VersionInfo on error
106- func versionInfo ( cmd * cobra. Command , globalOptions types. GlobalCommandOptions ) (dockercompat. VersionInfo , error ) {
107-
116+ // versionInfo may return partial VersionInfo on error.
117+ // Address can be empty to skip inspecting the server.
118+ func versionInfo ( cmd * cobra. Command , ns , address string ) (dockercompat. VersionInfo , error ) {
108119 v := dockercompat.VersionInfo {
109120 Client : infoutil .ClientVersion (),
110121 }
111- client , ctx , cancel , err := clientutil .NewClient (cmd .Context (), globalOptions .Namespace , globalOptions .Address )
122+ if address == "" {
123+ return v , nil
124+ }
125+ client , ctx , cancel , err := clientutil .NewClient (cmd .Context (), ns , address )
112126 if err != nil {
113127 return v , err
114128 }
0 commit comments