GetStrippedDockerImageName returns a tag stripped image name and checks if it's a valid image name
(imageName string)
| 14 | |
| 15 | // GetStrippedDockerImageName returns a tag stripped image name and checks if it's a valid image name |
| 16 | func GetStrippedDockerImageName(imageName string) (string, string, error) { |
| 17 | imageName = strings.TrimSpace(imageName) |
| 18 | |
| 19 | // Check if we can parse the name |
| 20 | ref, err := reference.ParseNormalizedNamed(imageName) |
| 21 | if err != nil { |
| 22 | return "", "", err |
| 23 | } |
| 24 | |
| 25 | // Check if there was a tag |
| 26 | tag := "" |
| 27 | if refTagged, ok := ref.(reference.NamedTagged); ok { |
| 28 | tag = refTagged.Tag() |
| 29 | } |
| 30 | |
| 31 | repoInfo, err := dockerregistry.ParseRepositoryInfo(ref) |
| 32 | if err != nil { |
| 33 | return "", "", err |
| 34 | } |
| 35 | |
| 36 | if repoInfo.Index.Official { |
| 37 | // strip docker.io and library from image |
| 38 | return strings.TrimPrefix(strings.TrimPrefix(reference.TrimNamed(ref).Name(), repoInfo.Index.Name+"/library/"), repoInfo.Index.Name+"/"), tag, nil |
| 39 | } |
| 40 | |
| 41 | return reference.TrimNamed(ref).Name(), tag, nil |
| 42 | } |
| 43 | |
| 44 | // GetPorts retrieves all the exported ports from a dockerfile |
| 45 | func GetPorts(filename string) ([]int, error) { |
no test coverage detected