42 lines
		
	
	
		
			988 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			988 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	gocontext "context"
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/davecgh/go-spew/spew"
 | 
						|
	"github.com/docker/containerd/api/execution"
 | 
						|
	"github.com/urfave/cli"
 | 
						|
)
 | 
						|
 | 
						|
var inspectCommand = cli.Command{
 | 
						|
	Name:  "inspect",
 | 
						|
	Usage: "inspect a container",
 | 
						|
	Action: func(context *cli.Context) error {
 | 
						|
		executionService, err := getExecutionService(context)
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		id := context.Args().First()
 | 
						|
		if id == "" {
 | 
						|
			return fmt.Errorf("container id must be provided")
 | 
						|
		}
 | 
						|
		getResponse, err := executionService.Get(gocontext.Background(),
 | 
						|
			&execution.GetContainerRequest{ID: id})
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		listProcResponse, err := executionService.ListProcesses(gocontext.Background(),
 | 
						|
			&execution.ListProcessesRequest{ID: id})
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		dumper := spew.NewDefaultConfig()
 | 
						|
		dumper.Indent = "\t"
 | 
						|
		dumper.DisableMethods = true
 | 
						|
		dumper.DisablePointerAddresses = true
 | 
						|
		dumper.Dump(getResponse, listProcResponse)
 | 
						|
		return nil
 | 
						|
	},
 | 
						|
}
 |