version.go 858 B

1234567891011121314151617181920212223242526272829303132333435
  1. package docker
  2. import (
  3. "github.com/dotcloud/docker/engine"
  4. "github.com/dotcloud/docker/utils"
  5. "runtime"
  6. )
  7. func init() {
  8. engine.Register("version", jobVersion)
  9. }
  10. func jobVersion(job *engine.Job) engine.Status {
  11. if _, err := dockerVersion().WriteTo(job.Stdout); err != nil {
  12. job.Errorf("%s", err)
  13. return engine.StatusErr
  14. }
  15. return engine.StatusOK
  16. }
  17. // dockerVersion returns detailed version information in the form of a queriable
  18. // environment.
  19. func dockerVersion() *engine.Env {
  20. v := &engine.Env{}
  21. v.Set("Version", VERSION)
  22. v.Set("GitCommit", GITCOMMIT)
  23. v.Set("GoVersion", runtime.Version())
  24. v.Set("Os", runtime.GOOS)
  25. v.Set("Arch", runtime.GOARCH)
  26. // FIXME:utils.GetKernelVersion should only be needed here
  27. if kernelVersion, err := utils.GetKernelVersion(); err == nil {
  28. v.Set("KernelVersion", kernelVersion.String())
  29. }
  30. return v
  31. }