Skip to content

Commit fa39503

Browse files
ndeloofglours
authored andcommitted
image can be set to a local ID, that isn't a valid docker ref
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent a351585 commit fa39503

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

pkg/compose/images.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,12 @@ func (s *composeService) getImageSummaries(ctx context.Context, repoTags []strin
9494
tag := ""
9595
repository := ""
9696
ref, err := reference.ParseDockerRef(repoTag)
97-
if err != nil {
98-
return err
99-
}
100-
repository = reference.FamiliarName(ref)
101-
if tagged, ok := ref.(reference.Tagged); ok {
102-
tag = tagged.Tag()
97+
if err == nil {
98+
// ParseDockerRef will reject a local image ID
99+
repository = reference.FamiliarName(ref)
100+
if tagged, ok := ref.(reference.Tagged); ok {
101+
tag = tagged.Tag()
102+
}
103103
}
104104
l.Lock()
105105
summary[repoTag] = api.ImageSummary{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
services:
2+
test:
3+
image: ${ID:?ID variable must be set}

pkg/e2e/up_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,18 @@ func TestUpProfile(t *testing.T) {
191191
assert.Assert(t, strings.Contains(res.Combined(), `Container foo_c Created`), res.Combined())
192192
assert.Assert(t, !strings.Contains(res.Combined(), `Container bar_c Created`), res.Combined())
193193
}
194+
195+
func TestUpImageID(t *testing.T) {
196+
c := NewCLI(t)
197+
const projectName = "compose-e2e-up-image-id"
198+
199+
digest := strings.TrimSpace(c.RunDockerCmd(t, "image", "inspect", "alpine", "-f", "{{ .ID }}").Stdout())
200+
_, id, _ := strings.Cut(digest, ":")
201+
202+
t.Cleanup(func() {
203+
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "-v")
204+
})
205+
206+
c = NewCLI(t, WithEnv(fmt.Sprintf("ID=%s", id)))
207+
c.RunDockerComposeCmd(t, "-f", "./fixtures/simple-composefile/id.yaml", "--project-name", projectName, "up")
208+
}

0 commit comments

Comments
 (0)