Skip to content

Commit 4d163f3

Browse files
authored
Merge pull request docker#9256 from ndeloof/rm_empty
don't fail trying to remove container with no candidate
2 parents 42710b7 + 5e8040e commit 4d163f3

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

pkg/compose/compose.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ SERVICES:
165165
continue SERVICES
166166
}
167167
}
168-
return project, errors.New("no such service: " + qs)
168+
return project, errors.Wrapf(api.ErrNotFound, "no such service: %q", qs)
169169
}
170170
err := project.ForServices(services)
171171
if err != nil {

pkg/compose/remove.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ import (
3232
func (s *composeService) Remove(ctx context.Context, projectName string, options api.RemoveOptions) error {
3333
containers, _, err := s.actualState(ctx, projectName, options.Services)
3434
if err != nil {
35+
if api.IsNotFoundError(err) {
36+
fmt.Fprintln(s.stderr(), "No stopped containers")
37+
return nil
38+
}
3539
return err
3640
}
3741

@@ -45,7 +49,7 @@ func (s *composeService) Remove(ctx context.Context, projectName string, options
4549
})
4650

4751
if len(names) == 0 {
48-
fmt.Println("No stopped containers")
52+
fmt.Fprintln(s.stderr(), "No stopped containers")
4953
return nil
5054
}
5155
msg := fmt.Sprintf("Going to remove %s", strings.Join(names, ", "))

pkg/e2e/compose_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ func TestRm(t *testing.T) {
188188
assert.Assert(t, !strings.Contains(res.Combined(), projectName+"_simple"), res.Combined())
189189
})
190190

191+
t.Run("rm -sf <none>", func(t *testing.T) {
192+
res := c.RunDockerComposeCmd("-f", "./fixtures/simple-composefile/compose.yaml", "-p", projectName, "rm", "-sf", "simple")
193+
res.Assert(t, icmd.Expected{ExitCode: 0})
194+
})
195+
191196
t.Run("down", func(t *testing.T) {
192197
c.RunDockerComposeCmd("-p", projectName, "down")
193198
})

0 commit comments

Comments
 (0)