func loadImage(filename string, uuid string, tags []string) error { // look up the image by UUID images, err := docker.Images() if err != nil { glog.Errorf("Could not look up images: %s", err) return err } var image *docker.Image for _, i := range images { if i.UUID == uuid { image = i break } } // image not found so import if image == nil { glog.Warningf("Importing image from file, don't forget to sync (serviced docker sync)") if err := docker.ImportImage(tags[0], filename); err != nil { glog.Errorf("Could not import image from file %s: %s", filename, err) return err } else if image, err = docker.FindImage(tags[0], false); err != nil { glog.Errorf("Could not look up docker image %s: %s", tags[0], err) return err } glog.Infof("Tagging images %v at %s", tags, image.UUID) tags = tags[1:] } // tag the remaining images for _, tag := range tags { if _, err := image.Tag(tag); err != nil { glog.Errorf("Could not tag image %s as %s: %s", image.UUID, tag, err) return err } } return nil }
func defaultTagImage(image *docker.Image, newTag string) (*docker.Image, error) { return image.Tag(newTag) }