Skip to content

Commit 56e48f8

Browse files
committed
Fix down command without any resource to delete
A command down without any resource to delete was trying to remove a default network that doesn't exist Signed-off-by: Ulysses Souza <[email protected]>
1 parent e700f0a commit 56e48f8

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

pkg/compose/down.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"time"
2424

2525
"github.com/compose-spec/compose-go/types"
26+
"github.com/docker/cli/cli/registry/client"
2627
moby "github.com/docker/docker/api/types"
2728
"github.com/docker/docker/errdefs"
2829
"golang.org/x/sync/errgroup"
@@ -131,6 +132,11 @@ func (s *composeService) ensureNetworksDown(ctx context.Context, project *types.
131132
continue
132133
}
133134
networkName := n.Name
135+
_, err := s.apiClient().NetworkInspect(ctx, networkName, moby.NetworkInspectOptions{})
136+
if client.IsNotFound(err) {
137+
return nil
138+
}
139+
134140
ops = append(ops, func() error {
135141
return s.removeNetwork(ctx, networkName, w)
136142
})

pkg/compose/down_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
compose "github.com/docker/compose/v2/pkg/api"
2525
"github.com/docker/compose/v2/pkg/mocks"
26-
2726
moby "github.com/docker/docker/api/types"
2827
"github.com/docker/docker/api/types/filters"
2928
"github.com/docker/docker/api/types/volume"
@@ -60,6 +59,7 @@ func TestDown(t *testing.T) {
6059
api.EXPECT().ContainerRemove(gomock.Any(), "456", moby.ContainerRemoveOptions{Force: true}).Return(nil)
6160
api.EXPECT().ContainerRemove(gomock.Any(), "789", moby.ContainerRemoveOptions{Force: true}).Return(nil)
6261

62+
api.EXPECT().NetworkInspect(gomock.Any(), "myProject_default", moby.NetworkInspectOptions{}).Return(moby.NetworkResource{Name: "myProject_default"}, nil)
6363
api.EXPECT().NetworkRemove(gomock.Any(), "myProject_default").Return(nil)
6464

6565
err := tested.Down(context.Background(), strings.ToLower(testProject), compose.DownOptions{})
@@ -94,6 +94,7 @@ func TestDownRemoveOrphans(t *testing.T) {
9494
api.EXPECT().ContainerRemove(gomock.Any(), "789", moby.ContainerRemoveOptions{Force: true}).Return(nil)
9595
api.EXPECT().ContainerRemove(gomock.Any(), "321", moby.ContainerRemoveOptions{Force: true}).Return(nil)
9696

97+
api.EXPECT().NetworkInspect(gomock.Any(), "myProject_default", moby.NetworkInspectOptions{}).Return(moby.NetworkResource{Name: "myProject_default"}, nil)
9798
api.EXPECT().NetworkRemove(gomock.Any(), "myProject_default").Return(nil)
9899

99100
err := tested.Down(context.Background(), strings.ToLower(testProject), compose.DownOptions{RemoveOrphans: true})

0 commit comments

Comments
 (0)