From 9b45d934c3bed4b14fad54f3ef3c79685ada88e5 Mon Sep 17 00:00:00 2001 From: Nigel Magnay Date: Tue, 23 Dec 2014 12:11:59 +0000 Subject: [PATCH] Use chunked encoding when passing the docker image. If you don't do this, you very often run out of heap space, as the webclient will create a buffer for the entire image file (possibly many gigabytes) before sending it. Signed-off-by: Nigel Magnay --- .../java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java index 71d3f902c..85c5f18c2 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java @@ -8,6 +8,8 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.glassfish.jersey.client.ClientProperties; +import org.glassfish.jersey.client.RequestEntityProcessing; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +41,10 @@ protected InputStream execute(BuildImageCmd command) { webResource = webResource.queryParam("q", "true"); } + + webResource.property(ClientProperties.REQUEST_ENTITY_PROCESSING, RequestEntityProcessing.CHUNKED); + webResource.property(ClientProperties.CHUNKED_ENCODING_SIZE, 1024*1024); + LOGGER.debug("POST: {}", webResource); return webResource .request()