diff --git a/docker/api/build.py b/docker/api/build.py index a76e32c1..f62a7319 100644 --- a/docker/api/build.py +++ b/docker/api/build.py @@ -264,6 +264,23 @@ class BuildApiMixin(object): return self._stream_helper(response, decode=decode) + @utils.minimum_version('1.31') + def prune_builds(self): + """ + Delete the builder cache + + Returns: + (dict): A dictionary containing information about the operation's + result. The ``SpaceReclaimed`` key indicates the amount of + bytes of disk space reclaimed. + + Raises: + :py:class:`docker.errors.APIError` + If the server returns an error. + """ + url = self._url("/build/prune") + return self._result(self._post(url), True) + def _set_auth_headers(self, headers): log.debug('Looking for auth config') diff --git a/tests/integration/api_build_test.py b/tests/integration/api_build_test.py index 94230127..92e00625 100644 --- a/tests/integration/api_build_test.py +++ b/tests/integration/api_build_test.py @@ -503,3 +503,9 @@ class BuildTest(BaseAPIIntegrationTest): assert sorted( [b'.', b'..', b'file.txt', b'custom.dockerfile'] ) == sorted(lsdata) + + @requires_api_version('1.31') + def test_prune_builds(self): + prune_result = self.client.prune_builds() + assert 'SpaceReclaimed' in prune_result + assert isinstance(prune_result['SpaceReclaimed'], int)