Merge pull request #1401 from umohnani8/image

Fix create container failure due to wrong image reference
This commit is contained in:
Daniel J Walsh 2018-03-03 10:18:09 -05:00 committed by GitHub
commit 860fba80eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 8 deletions

View file

@ -616,6 +616,8 @@ func splitDockerDomain(name string) (domain, remainder string) {
return return
} }
// ResolveNames resolves an image name into a storage image ID or a fully-qualified image name (domain/repo/image:tag).
// Will only return an empty slice if err != nil.
func (svc *imageService) ResolveNames(imageName string) ([]string, error) { func (svc *imageService) ResolveNames(imageName string) ([]string, error) {
// _Maybe_ it's a truncated image ID. Don't prepend a registry name, then. // _Maybe_ it's a truncated image ID. Don't prepend a registry name, then.
if len(imageName) >= minimumTruncatedIDLength && svc.store != nil { if len(imageName) >= minimumTruncatedIDLength && svc.store != nil {

View file

@ -1038,14 +1038,24 @@ func (s *Server) createSandboxContainer(ctx context.Context, containerID string,
} }
// Get imageName and imageRef that are later requested in container status // Get imageName and imageRef that are later requested in container status
status, err := s.StorageImageServer().ImageStatus(s.ImageContext(), images[0]) var (
if err != nil { imgResult *storage.ImageResult
return nil, err imgResultErr error
)
for _, img := range images {
imgResult, imgResultErr = s.StorageImageServer().ImageStatus(s.ImageContext(), img)
if imgResultErr == nil {
break
} }
imageName := status.Name }
imageRef := status.ID if imgResultErr != nil {
if len(status.RepoDigests) > 0 { return nil, imgResultErr
imageRef = status.RepoDigests[0] }
imageName := imgResult.Name
imageRef := imgResult.ID
if len(imgResult.RepoDigests) > 0 {
imageRef = imgResult.RepoDigests[0]
} }
specgen.AddAnnotation(annotations.Image, image) specgen.AddAnnotation(annotations.Image, image)
@ -1163,7 +1173,7 @@ func (s *Server) createSandboxContainer(ctx context.Context, containerID string,
attempt := metadata.Attempt attempt := metadata.Attempt
containerInfo, err := s.StorageRuntimeServer().CreateContainer(s.ImageContext(), containerInfo, err := s.StorageRuntimeServer().CreateContainer(s.ImageContext(),
sb.Name(), sb.ID(), sb.Name(), sb.ID(),
image, status.ID, image, imgResult.ID,
containerName, containerID, containerName, containerID,
metaname, metaname,
attempt, attempt,