Sha256: 80d235a163642e9be115a919b9f4ce2ba1186906daffff11d36dcf9ba8b29092

Contents?: true

Size: 925 Bytes

Versions: 1

Compression:

Stored size: 925 Bytes

Contents

require 'open3'

module GitlabJanitor
  class CacheCleaner < BaseCleaner

    def initialize(**kwargs)
      super(**kwargs)
    end

    def do_clean(keep_size: '10G', remove: false)
      logger.info 'Removing cache...'
      if remove
        prune_builder
        prune_buildx
      else
        logger.info 'Skip removal due to dry run'
      end
      out, _status = Open3.capture2e('docker system df')
      logger.info(out)
    end
    
    def prune_builder
      out, _status = Open3.capture2e("docker builder prune --keep-storage #{keep_size} -f")
      logger.info(out)
    rescue StandardError =>e
      logger.warn("Unable to clean BUILDER: #{e.inspect}")
    end
    
    def prune_buildx
      out, _status = Open3.capture2e("docker buildx prune --keep-storage #{keep_size} -f")
      logger.info(out)
    rescue StandardError =>e
      logger.warn("Unable to clean BUILDX: #{e.inspect}")
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gitlab-janitor-1.0.4.94864 lib/gitlab_janitor/cache_cleaner.rb