fill in help, add hint when running in docker

This commit is contained in:
Nate Jones 2015-08-18 06:33:22 -07:00
parent 7b58366a10
commit b911e69180
4 changed files with 33 additions and 4 deletions

View file

@ -1,3 +1,4 @@
FROM scratch
COPY dockviz /
ENV IN_DOCKER true
ENTRYPOINT ["/dockviz"]

View file

@ -57,7 +57,11 @@ func (x *ContainersCommand) Execute(args []string) error {
clientContainers, err := client.ListContainers(docker.ListContainersOptions{All: true})
if err != nil {
return fmt.Errorf("Unable to connect: %s\nFor help, run 'dockviz help'", err)
if in_docker := os.Getenv("IN_DOCKER"); len(in_docker) > 0 {
return fmt.Errorf("Unable to access Docker socket, please run like this:\n docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz containers <args>\nFor more help, run 'dockviz help'")
} else {
return fmt.Errorf("Unable to connect: %s\nFor help, run 'dockviz help'", err)
}
}
var conts []Container

24
help.go
View file

@ -9,14 +9,34 @@ type HelpCommand struct {
var helpCommand HelpCommand
func (x *HelpCommand) Execute(args []string) error {
fmt.Println("stub help is here")
fmt.Println(`Dockviz: Visualizing Docker Data
Connecting to Docker:
Dockviz supports connecting to the Docker daemon directly. It defaults to
'unix:///var/run/docker.sock', but respects the following as well:
* The 'DOCKER_HOST', 'DOCKER_CERT_PATH', and 'DOCKER_TLS_VERIFY' environment
variables, as set up by boot2docker or docker-machine.
* Command line arguments (e.g. '--tlscacert'), like those that Docker itself
supports.
Dockviz also supports receiving Docker image or container json data on standard
input: curl -s http://localhost:4243/images/json?all=1 | dockviz images --tree
Visualizing:
Dockviz can visualize both images and containers. For more information on the
options each subcommand supports, run them with the '--help' flag (e.g.
'dockviz images --help').
`)
return nil
}
func init() {
parser.AddCommand("help",
"Help for this tool.",
"Help for dockviz.",
"",
&helpCommand)
}

View file

@ -59,7 +59,11 @@ func (x *ImagesCommand) Execute(args []string) error {
clientImages, err := client.ListImages(docker.ListImagesOptions{All: true})
if err != nil {
return fmt.Errorf("Unable to connect: %s\nFor help, run 'dockviz help'", err)
if in_docker := os.Getenv("IN_DOCKER"); len(in_docker) > 0 {
return fmt.Errorf("Unable to access Docker socket, please run like this:\n docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz images <args>\nFor more help, run 'dockviz help'")
} else {
return fmt.Errorf("Unable to connect: %s\nFor help, run 'dockviz help'", err)
}
}
var ims []Image