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+(.*)$");

41414242

private InputStream tarInputStream = null;

43+

private File tarFile = null;

4344

private String tag;

4445

private boolean noCache;

4546

private boolean remove = true;

@@ -48,7 +49,13 @@ public class BuildImageCmdImpl extends AbstrDockerCmd<BuildImageCmd, InputStream

4849

public BuildImageCmdImpl(BuildImageCmd.Exec exec, File dockerFolder) {

4950

super(exec);

5051

Preconditions.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

}

53605461

public BuildImageCmdImpl(BuildImageCmd.Exec exec, InputStream tarInputStream) {

@@ -129,6 +136,14 @@ public BuildImageCmdImpl withQuiet(boolean quiet) {

129136

return 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

133148

public String toString() {

134149

return 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) {

143158

Preconditions.checkArgument(dockerFolder.exists(),

144159

"Path %s doesn't exist", dockerFolder);

145160

Preconditions.checkArgument(dockerFolder.isDirectory(),

@@ -255,9 +270,8 @@ protected InputStream buildDockerFolderTar(File dockerFolder) {

255270

}

256271

}

257272258-

dockerFolderTar = CompressArchiveUtil.archiveTARFiles(dockerFolder,

273+

return CompressArchiveUtil.archiveTARFiles(dockerFolder,

259274

filesToAdd, archiveNameWithOutExtension);

260-

return FileUtils.openInputStream(dockerFolderTar);

261275

} catch (IOException ex) {

262276

FileUtils.deleteQuietly(dockerFolderTar);

263277

throw new DockerClientException(