Skip to content

Commit

Permalink
Merge pull request #8098 from vrothberg/fix-8082
Browse files Browse the repository at this point in the history
container create: record correct image name
  • Loading branch information
openshift-merge-robot authored Oct 22, 2020
2 parents 513c261 + 410fa53 commit 2cb12bb
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 5 deletions.
2 changes: 1 addition & 1 deletion libpod/image/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ func (ir *Runtime) getLocalImage(inputName string) (string, *storage.Image, erro
if err != nil {
return "", nil, err
}
img, err := ir.store.Image(ref.String())
img, err := ir.store.Image(reference.TagNameOnly(ref).String())
if err == nil {
return ref.String(), img, nil
}
Expand Down
17 changes: 13 additions & 4 deletions pkg/specgen/generate/container_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"os"
"path/filepath"
"strings"

"github.com/containers/common/pkg/config"
"github.com/containers/podman/v2/libpod"
Expand Down Expand Up @@ -91,11 +92,19 @@ func MakeContainer(ctx context.Context, rt *libpod.Runtime, s *specgen.SpecGener
if err != nil {
return nil, err
}
imgName := s.Image
names := newImage.Names()
if len(names) > 0 {
imgName = names[0]
// If the input name changed, we could properly resolve the
// image. Otherwise, it must have been an ID where we're
// defaulting to the first name or an empty one if no names are
// present.
imgName := newImage.InputName
if s.Image == newImage.InputName && strings.HasPrefix(newImage.ID(), s.Image) {
imgName = ""
names := newImage.Names()
if len(names) > 0 {
imgName = names[0]
}
}

options = append(options, libpod.WithRootFSFromImage(newImage.ID(), imgName, s.RawImageName))
}
if err := s.Validate(); err != nil {
Expand Down
19 changes: 19 additions & 0 deletions test/system/030-run.bats
Original file line number Diff line number Diff line change
Expand Up @@ -473,4 +473,23 @@ json-file | f
run_podman kill $cid
}

# Regression test for issue #8082
@test "podman run : look up correct image name" {
# Create a 2nd tag for the local image.
local name="localhost/foo/bar"
run_podman tag $IMAGE $name

# Create a container with the 2nd tag and make sure that it's being
# used. #8082 always inaccurately used the 1st tag.
run_podman create $name
cid="$output"

run_podman inspect --format "{{.ImageName}}" $cid
is "$output" "$name"

# Clean up.
run_podman rm $cid
run_podman untag $IMAGE $name
}

# vim: filetype=sh

0 comments on commit 2cb12bb

Please sign in to comment.