| 151 | } |
| 152 | |
| 153 | func imageAlreadyPresent(serviceImage string, localImages map[string]api.ImageSummary) bool { |
| 154 | normalizedImage, err := reference.ParseDockerRef(serviceImage) |
| 155 | if err != nil { |
| 156 | return false |
| 157 | } |
| 158 | switch refType := normalizedImage.(type) { |
| 159 | case reference.NamedTagged: |
| 160 | _, ok := localImages[serviceImage] |
| 161 | return ok && refType.Tag() != "latest" |
| 162 | default: |
| 163 | _, ok := localImages[serviceImage] |
| 164 | return ok |
| 165 | } |
| 166 | } |
| 167 | |
| 168 | func getUnwrappedErrorMessage(err error) string { |
| 169 | derr := errors.Unwrap(err) |