mirror of https://github.com/docker/docs.git
Send the images in correct order
This commit is contained in:
parent
55cf05835b
commit
3cbf5670c5
34
registry.go
34
registry.go
|
@ -547,27 +547,6 @@ func (graph *Graph) pushPrimitive(stdout io.Writer, remote, tag, imgId, registry
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push a repository to the registry.
|
|
||||||
// Remote has the format '<user>/<repo>
|
|
||||||
func (graph *Graph) PushRepository(stdout io.Writer, remote string, localRepo Repository, authConfig *auth.AuthConfig) error {
|
|
||||||
client := graph.getHttpClient()
|
|
||||||
|
|
||||||
checksums, err := graph.Checksums(stdout, localRepo)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
for tag, id := range originRepo {
|
|
||||||
if exists, err := graph.getRemoteImageJson(id); err != nil {
|
|
||||||
return nil, err
|
|
||||||
} else if !exists {
|
|
||||||
filteredRepo[tag] = id
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return filteredRepo, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Retrieve the checksum of an image
|
// Retrieve the checksum of an image
|
||||||
// Priority:
|
// Priority:
|
||||||
// - Check on the stored checksums
|
// - Check on the stored checksums
|
||||||
|
@ -606,6 +585,7 @@ func (graph *Graph) getChecksum(imageId string) (string, error) {
|
||||||
type ImgListJson struct {
|
type ImgListJson struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
Checksum string `json:"checksum,omitempty"`
|
Checksum string `json:"checksum,omitempty"`
|
||||||
|
tag string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push a repository to the registry.
|
// Push a repository to the registry.
|
||||||
|
@ -618,7 +598,8 @@ func (graph *Graph) PushRepository(stdout io.Writer, remote string, localRepo Re
|
||||||
|
|
||||||
fmt.Fprintf(stdout, "Processing checksums\n")
|
fmt.Fprintf(stdout, "Processing checksums\n")
|
||||||
imageSet := make(map[string]struct{})
|
imageSet := make(map[string]struct{})
|
||||||
for _, id := range localRepo {
|
|
||||||
|
for tag, id := range localRepo {
|
||||||
img, err := graph.Get(id)
|
img, err := graph.Get(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -632,10 +613,11 @@ func (graph *Graph) PushRepository(stdout io.Writer, remote string, localRepo Re
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
imgList = append(imgList, &ImgListJson{
|
imgList = append([]*ImgListJson{{
|
||||||
Id: img.Id,
|
Id: img.Id,
|
||||||
Checksum: checksum,
|
Checksum: checksum,
|
||||||
})
|
tag: tag,
|
||||||
|
}}, imgList...)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -704,8 +686,8 @@ func (graph *Graph) PushRepository(stdout io.Writer, remote string, localRepo Re
|
||||||
for _, registry := range endpoints {
|
for _, registry := range endpoints {
|
||||||
fmt.Fprintf(stdout, "Pushing repository %s to %s (%d tags)\r\n", remote, registry, len(localRepo))
|
fmt.Fprintf(stdout, "Pushing repository %s to %s (%d tags)\r\n", remote, registry, len(localRepo))
|
||||||
// For each image within the repo, push them
|
// For each image within the repo, push them
|
||||||
for tag, imgId := range localRepo {
|
for _, elem := range imgList {
|
||||||
if err := graph.pushPrimitive(stdout, remote, tag, imgId, registry, token); err != nil {
|
if err := graph.pushPrimitive(stdout, remote, elem.tag, elem.Id, registry, token); err != nil {
|
||||||
// FIXME: Continue on error?
|
// FIXME: Continue on error?
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue