Skip to content

Idea: docker compose watch --prune #11073

Closed

Description

@arjasco

Description

Having just started using watch to rebuild a Go application on code changes, I'm quite happy! It's a solid feature that means I no longer need to rely on other tools to watch for file changes.

I've done some searching around but haven't found any discussion on tidying up dangling images after the numerous if not hundreds of rebuilds that could occur throughout the day.

Adding a --prune option to the command that does this automatically would be a nice next addition.

At present you only have the following options (as far as I'm aware):

  • Run docker system prune manually once in a while.
  • Set up a cronjob to run the above command to remove the manual element.
  • Or a little more programatic would be to pipe the output of docker system events to another process, pulling out the label for com.docker.compose.service and providing that as a filter to the prune command.

All are undesirable, you might not want this running all the time on a schedule and anything manual is going against the point of having a watcher in the first instance to build / sync.

Activity

  1. nivpenso commented on Nov 30, 2023

    @nivpenso

    I have the exact same issue.

    I thought of solving it by adding an additional field keep_dangled_image to the configuration of the rebuild action section.

    by default keep_dangled_image will be true, and everything will act as today. but if it is false, the compose will delete the image that became dangled after rebuilding the image

    services:
      nginx:
        build:
          context: .
        develop:
          watch:
            - action: rebuild
              path: ./deps/nginx/nginx.conf
              keep_dangled_image: false
    
  2. g0t4 commented on Dec 5, 2023

    @g0t4
    Contributor

    This could work for any compose project with a build.

    services:
      nginx:
        build:
          context: .
          prune: true
    
  3. idsulik commented on Aug 31, 2024

    @idsulik
    Collaborator

    hi everyone! It was implemented and released.
    I think we can close the issue, @ndeloof fyi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions