Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit a29d3e6

Browse files
authored
Merge pull request #1787 from ndeloof/remove_anonymous
`compose down -v` also removes anonymous volumes
2 parents 43655ba + 7f22783 commit a29d3e6

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

local/compose/build.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ func (s *composeService) doBuild(ctx context.Context, project *types.Project, op
232232
for _, c := range observedState {
233233
for imageName := range opts {
234234
if c.Image == imageName {
235-
err = s.removeContainers(ctx, cw, []moby.Container{c}, nil)
235+
err = s.removeContainers(ctx, cw, []moby.Container{c}, nil, false)
236236
if err != nil {
237237
return nil, err
238238
}

local/compose/create.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func (s *composeService) create(ctx context.Context, project *types.Project, opt
9393
if len(orphans) > 0 {
9494
if options.RemoveOrphans {
9595
w := progress.ContextWriter(ctx)
96-
err := s.removeContainers(ctx, w, orphans, nil)
96+
err := s.removeContainers(ctx, w, orphans, nil, false)
9797
if err != nil {
9898
return err
9999
}

local/compose/down.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ func (s *composeService) down(ctx context.Context, projectName string, options c
6666

6767
err = InReverseDependencyOrder(ctx, options.Project, func(c context.Context, service types.ServiceConfig) error {
6868
serviceContainers := containers.filter(isService(service.Name))
69-
err := s.removeContainers(ctx, w, serviceContainers, options.Timeout)
69+
err := s.removeContainers(ctx, w, serviceContainers, options.Timeout, options.Volumes)
7070
return err
7171
})
7272
if err != nil {
@@ -75,7 +75,7 @@ func (s *composeService) down(ctx context.Context, projectName string, options c
7575

7676
orphans := containers.filter(isNotService(options.Project.ServiceNames()...))
7777
if options.RemoveOrphans && len(orphans) > 0 {
78-
err := s.removeContainers(ctx, w, orphans, options.Timeout)
78+
err := s.removeContainers(ctx, w, orphans, options.Timeout, false)
7979
if err != nil {
8080
return err
8181
}
@@ -215,7 +215,7 @@ func (s *composeService) stopContainers(ctx context.Context, w progress.Writer,
215215
return eg.Wait()
216216
}
217217

218-
func (s *composeService) removeContainers(ctx context.Context, w progress.Writer, containers []moby.Container, timeout *time.Duration) error {
218+
func (s *composeService) removeContainers(ctx context.Context, w progress.Writer, containers []moby.Container, timeout *time.Duration, volumes bool) error {
219219
eg, _ := errgroup.WithContext(ctx)
220220
for _, container := range containers {
221221
toDelete := container
@@ -228,7 +228,10 @@ func (s *composeService) removeContainers(ctx context.Context, w progress.Writer
228228
return err
229229
}
230230
w.Event(progress.RemovingEvent(eventName))
231-
err = s.apiClient.ContainerRemove(ctx, toDelete.ID, moby.ContainerRemoveOptions{Force: true})
231+
err = s.apiClient.ContainerRemove(ctx, toDelete.ID, moby.ContainerRemoveOptions{
232+
Force: true,
233+
RemoveVolumes: volumes,
234+
})
232235
if err != nil {
233236
w.Event(progress.ErrorMessageEvent(eventName, "Error while Removing"))
234237
return err

local/compose/down_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func TestDownRemoveVolumes(t *testing.T) {
9090
[]apitypes.Container{testContainer("service1", "123")}, nil)
9191

9292
api.EXPECT().ContainerStop(gomock.Any(), "123", nil).Return(nil)
93-
api.EXPECT().ContainerRemove(gomock.Any(), "123", apitypes.ContainerRemoveOptions{Force: true}).Return(nil)
93+
api.EXPECT().ContainerRemove(gomock.Any(), "123", apitypes.ContainerRemoveOptions{Force: true, RemoveVolumes: true}).Return(nil)
9494

9595
api.EXPECT().NetworkList(gomock.Any(), apitypes.NetworkListOptions{Filters: filters.NewArgs(projectFilter(testProject))}).Return(nil, nil)
9696

0 commit comments

Comments
 (0)