123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package registry // import "github.com/docker/docker/api/types/registry"
- import (
- "encoding/json"
- "net"
- v1 "github.com/opencontainers/image-spec/specs-go/v1"
- )
- // ServiceConfig stores daemon registry services configuration.
- type ServiceConfig struct {
- AllowNondistributableArtifactsCIDRs []*NetIPNet
- AllowNondistributableArtifactsHostnames []string
- InsecureRegistryCIDRs []*NetIPNet `json:"InsecureRegistryCIDRs"`
- IndexConfigs map[string]*IndexInfo `json:"IndexConfigs"`
- Mirrors []string
- }
- // NetIPNet is the net.IPNet type, which can be marshalled and
- // unmarshalled to JSON
- type NetIPNet net.IPNet
- // String returns the CIDR notation of ipnet
- func (ipnet *NetIPNet) String() string {
- return (*net.IPNet)(ipnet).String()
- }
- // MarshalJSON returns the JSON representation of the IPNet
- func (ipnet *NetIPNet) MarshalJSON() ([]byte, error) {
- return json.Marshal((*net.IPNet)(ipnet).String())
- }
- // UnmarshalJSON sets the IPNet from a byte array of JSON
- func (ipnet *NetIPNet) UnmarshalJSON(b []byte) (err error) {
- var ipnetStr string
- if err = json.Unmarshal(b, &ipnetStr); err == nil {
- var cidr *net.IPNet
- if _, cidr, err = net.ParseCIDR(ipnetStr); err == nil {
- *ipnet = NetIPNet(*cidr)
- }
- }
- return
- }
- // IndexInfo contains information about a registry
- //
- // RepositoryInfo Examples:
- // {
- // "Index" : {
- // "Name" : "docker.io",
- // "Mirrors" : ["https://registry-2.docker.io/v1/", "https://registry-3.docker.io/v1/"],
- // "Secure" : true,
- // "Official" : true,
- // },
- // "RemoteName" : "library/debian",
- // "LocalName" : "debian",
- // "CanonicalName" : "docker.io/debian"
- // "Official" : true,
- // }
- //
- // {
- // "Index" : {
- // "Name" : "127.0.0.1:5000",
- // "Mirrors" : [],
- // "Secure" : false,
- // "Official" : false,
- // },
- // "RemoteName" : "user/repo",
- // "LocalName" : "127.0.0.1:5000/user/repo",
- // "CanonicalName" : "127.0.0.1:5000/user/repo",
- // "Official" : false,
- // }
- type IndexInfo struct {
- // Name is the name of the registry, such as "docker.io"
- Name string
- // Mirrors is a list of mirrors, expressed as URIs
- Mirrors []string
- // Secure is set to false if the registry is part of the list of
- // insecure registries. Insecure registries accept HTTP and/or accept
- // HTTPS with certificates from unknown CAs.
- Secure bool
- // Official indicates whether this is an official registry
- Official bool
- }
- // SearchResult describes a search result returned from a registry
- type SearchResult struct {
- // StarCount indicates the number of stars this repository has
- StarCount int `json:"star_count"`
- // IsOfficial is true if the result is from an official repository.
- IsOfficial bool `json:"is_official"`
- // Name is the name of the repository
- Name string `json:"name"`
- // IsAutomated indicates whether the result is automated
- IsAutomated bool `json:"is_automated"`
- // Description is a textual description of the repository
- Description string `json:"description"`
- }
- // SearchResults lists a collection search results returned from a registry
- type SearchResults struct {
- // Query contains the query string that generated the search results
- Query string `json:"query"`
- // NumResults indicates the number of results the query returned
- NumResults int `json:"num_results"`
- // Results is a slice containing the actual results for the search
- Results []SearchResult `json:"results"`
- }
- // DistributionInspect describes the result obtained from contacting the
- // registry to retrieve image metadata
- type DistributionInspect struct {
- // Descriptor contains information about the manifest, including
- // the content addressable digest
- Descriptor v1.Descriptor
- // Platforms contains the list of platforms supported by the image,
- // obtained by parsing the manifest
- Platforms []v1.Platform
- }
|