Display warning in `docker compose down` if nothing to remove (no container, no network)

For reference, `docker-compose` displays `WARNING: Network sentences_default not found`

Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
This commit is contained in:
Guillaume Tardif 2021-02-08 17:20:36 +01:00
parent ec26ba5230
commit 58e10a7af2
1 changed files with 8 additions and 0 deletions

View File

@ -34,6 +34,7 @@ import (
func (s *composeService) Down(ctx context.Context, projectName string, options compose.DownOptions) error {
w := progress.ContextWriter(ctx)
resourceToRemove := false
if options.Project == nil {
project, err := s.projectFromContainerLabels(ctx, projectName)
@ -51,6 +52,9 @@ func (s *composeService) Down(ctx context.Context, projectName string, options c
if err != nil {
return err
}
if len(containers) > 0 {
resourceToRemove = true
}
err = InReverseDependencyOrder(ctx, options.Project, func(c context.Context, service types.ServiceConfig) error {
serviceContainers, others := containers.split(isService(service.Name))
@ -80,12 +84,16 @@ func (s *composeService) Down(ctx context.Context, projectName string, options c
eg, _ := errgroup.WithContext(ctx)
for _, n := range networks {
resourceToRemove = true
networkID := n.ID
networkName := n.Name
eg.Go(func() error {
return s.ensureNetworkDown(ctx, networkID, networkName)
})
}
if !resourceToRemove {
w.Event(progress.NewEvent(projectName, progress.Done, "Warning: No resource found to remove"))
}
return eg.Wait()
}