From d0e984347af6ff2edbcf37bafe290f715d7dcf99 Mon Sep 17 00:00:00 2001 From: Robert Glen Date: Wed, 9 Jul 2014 16:29:37 -0700 Subject: [PATCH 1/2] Fixed bug in utils.mkbuildcontext for BytesIO Dockerfiles - resetting dockerfile seek position to 0 after dockerfile.getvalue() is called - prevents traceback on line utils.py line 43 - 'IOError("end of file reached")' in tarfile.py --- docker/utils/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/utils/utils.py b/docker/utils/utils.py index f741ee27..b13248bf 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -39,6 +39,7 @@ def mkbuildcontext(dockerfile): elif isinstance(dockerfile, io.BytesIO): dfinfo = tarfile.TarInfo('Dockerfile') dfinfo.size = len(dockerfile.getvalue()) + dockerfile.seek(0) else: dfinfo = t.gettarinfo(fileobj=dockerfile, arcname='Dockerfile') t.addfile(dfinfo, dockerfile) From adcfa4b29ec994b3685ce1223095a3044cc81d1e Mon Sep 17 00:00:00 2001 From: Robert Glen Date: Thu, 10 Jul 2014 09:06:44 -0700 Subject: [PATCH 2/2] Should be done for StringIO objects as well --- docker/utils/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/utils/utils.py b/docker/utils/utils.py index b13248bf..174faf6b 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -36,6 +36,7 @@ def mkbuildcontext(dockerfile): 'Dockerfiles with Python 3') else: dfinfo.size = len(dockerfile.getvalue()) + dockerfile.seek(0) elif isinstance(dockerfile, io.BytesIO): dfinfo = tarfile.TarInfo('Dockerfile') dfinfo.size = len(dockerfile.getvalue())