distribution_inspect.go 894 B

12345678910111213141516171819202122232425262728293031
  1. package client
  2. import (
  3. "encoding/json"
  4. "net/url"
  5. registrytypes "github.com/docker/docker/api/types/registry"
  6. "golang.org/x/net/context"
  7. )
  8. // DistributionInspect returns the image digest with full Manifest
  9. func (cli *Client) DistributionInspect(ctx context.Context, image, encodedRegistryAuth string) (registrytypes.DistributionInspect, error) {
  10. var headers map[string][]string
  11. if encodedRegistryAuth != "" {
  12. headers = map[string][]string{
  13. "X-Registry-Auth": {encodedRegistryAuth},
  14. }
  15. }
  16. // Contact the registry to retrieve digest and platform information
  17. var distributionInspect registrytypes.DistributionInspect
  18. resp, err := cli.get(ctx, "/distribution/"+image+"/json", url.Values{}, headers)
  19. if err != nil {
  20. return distributionInspect, err
  21. }
  22. err = json.NewDecoder(resp.body).Decode(&distributionInspect)
  23. ensureReaderClosed(resp)
  24. return distributionInspect, err
  25. }