mirror of https://github.com/docker/compose.git
image can be set to a local ID, that isn't a valid docker ref
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
a351585024
commit
fa39503469
|
@ -94,12 +94,12 @@ func (s *composeService) getImageSummaries(ctx context.Context, repoTags []strin
|
|||
tag := ""
|
||||
repository := ""
|
||||
ref, err := reference.ParseDockerRef(repoTag)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
repository = reference.FamiliarName(ref)
|
||||
if tagged, ok := ref.(reference.Tagged); ok {
|
||||
tag = tagged.Tag()
|
||||
if err == nil {
|
||||
// ParseDockerRef will reject a local image ID
|
||||
repository = reference.FamiliarName(ref)
|
||||
if tagged, ok := ref.(reference.Tagged); ok {
|
||||
tag = tagged.Tag()
|
||||
}
|
||||
}
|
||||
l.Lock()
|
||||
summary[repoTag] = api.ImageSummary{
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
services:
|
||||
test:
|
||||
image: ${ID:?ID variable must be set}
|
|
@ -191,3 +191,18 @@ func TestUpProfile(t *testing.T) {
|
|||
assert.Assert(t, strings.Contains(res.Combined(), `Container foo_c Created`), res.Combined())
|
||||
assert.Assert(t, !strings.Contains(res.Combined(), `Container bar_c Created`), res.Combined())
|
||||
}
|
||||
|
||||
func TestUpImageID(t *testing.T) {
|
||||
c := NewCLI(t)
|
||||
const projectName = "compose-e2e-up-image-id"
|
||||
|
||||
digest := strings.TrimSpace(c.RunDockerCmd(t, "image", "inspect", "alpine", "-f", "{{ .ID }}").Stdout())
|
||||
_, id, _ := strings.Cut(digest, ":")
|
||||
|
||||
t.Cleanup(func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "-v")
|
||||
})
|
||||
|
||||
c = NewCLI(t, WithEnv(fmt.Sprintf("ID=%s", id)))
|
||||
c.RunDockerComposeCmd(t, "-f", "./fixtures/simple-composefile/id.yaml", "--project-name", projectName, "up")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue