Add support for deleting temporary temp files · docker-java/docker-java@f0e78bd
@@ -40,6 +40,7 @@ public class BuildImageCmdImpl extends AbstrDockerCmd<BuildImageCmd, InputStream
4040 .compile("^ENV\\s+(.*)\\s+(.*)$");
41414242private InputStream tarInputStream = null;
43+private File tarFile = null;
4344private String tag;
4445private boolean noCache;
4546private boolean remove = true;
@@ -48,7 +49,13 @@ public class BuildImageCmdImpl extends AbstrDockerCmd<BuildImageCmd, InputStream
4849public BuildImageCmdImpl(BuildImageCmd.Exec exec, File dockerFolder) {
4950super(exec);
5051Preconditions.checkNotNull(dockerFolder, "dockerFolder is null");
51-withTarInputStream(buildDockerFolderTar(dockerFolder));
52+tarFile = buildDockerFolderTar(dockerFolder);
53+try {
54+withTarInputStream(FileUtils.openInputStream(tarFile));
55+ } catch (IOException e) {
56+// we just created the file this should never happen.
57+throw new RuntimeException(e);
58+ }
5259 }
53605461public BuildImageCmdImpl(BuildImageCmd.Exec exec, InputStream tarInputStream) {
@@ -129,6 +136,14 @@ public BuildImageCmdImpl withQuiet(boolean quiet) {
129136return this;
130137 }
131138139+@Override
140+public void close() throws IOException {
141+super.close();
142+if (tarFile != null) {
143+FileUtils.deleteQuietly(tarFile);
144+ }
145+ }
146+132147@Override
133148public String toString() {
134149return new StringBuilder("build ")
@@ -139,7 +154,7 @@ public String toString() {
139154 .toString();
140155 }
141156142-protected InputStream buildDockerFolderTar(File dockerFolder) {
157+protected File buildDockerFolderTar(File dockerFolder) {
143158Preconditions.checkArgument(dockerFolder.exists(),
144159"Path %s doesn't exist", dockerFolder);
145160Preconditions.checkArgument(dockerFolder.isDirectory(),
@@ -255,9 +270,8 @@ protected InputStream buildDockerFolderTar(File dockerFolder) {
255270 }
256271 }
257272258-dockerFolderTar = CompressArchiveUtil.archiveTARFiles(dockerFolder,
273+return CompressArchiveUtil.archiveTARFiles(dockerFolder,
259274filesToAdd, archiveNameWithOutExtension);
260-return FileUtils.openInputStream(dockerFolderTar);
261275 } catch (IOException ex) {
262276FileUtils.deleteQuietly(dockerFolderTar);
263277throw new DockerClientException(