X Tutup
Skip to content

Commit 8935d11

Browse files
committed
Merge pull request #170 from magnayn/pr7
Since docker 1.5.0, it has been allowable to specify files other
2 parents f38e935 + 73602ad commit 8935d11

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.dockerjava.api.command;
22

3+
import java.io.File;
34
import java.io.IOException;
45
import java.io.InputStream;
56

@@ -26,9 +27,11 @@ public interface BuildImageCmd extends DockerCmd<BuildImageCmd.Response>{
2627
public boolean hasRemoveEnabled();
2728

2829
public boolean isQuiet();
29-
30+
3031
public AuthConfigurations getBuildAuthConfigs();
3132

33+
public BuildImageCmd withDockerfile(File dockerfile);
34+
3235
public BuildImageCmd withTarInputStream(InputStream tarInputStream);
3336

3437
public BuildImageCmd withNoCache();

src/main/java/com/github/dockerjava/core/DockerClientImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,9 +292,9 @@ public CommitCmd commitCmd(String containerId) {
292292
}
293293

294294
@Override
295-
public BuildImageCmd buildImageCmd(File dockerFolder) {
295+
public BuildImageCmd buildImageCmd(File dockerFileOrFolder) {
296296
return new BuildImageCmdImpl(getDockerCmdExecFactory()
297-
.createBuildImageCmdExec(), dockerFolder);
297+
.createBuildImageCmdExec(), dockerFileOrFolder);
298298
}
299299

300300
@Override

src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,18 @@ public class BuildImageCmdImpl extends AbstrDockerCmd<BuildImageCmd, BuildImageC
2525
private boolean quiet;
2626
private AuthConfigurations buildAuthConfigs;
2727

28-
public BuildImageCmdImpl(BuildImageCmd.Exec exec, File dockerFolder) {
28+
public BuildImageCmdImpl(BuildImageCmd.Exec exec) {
29+
super(exec);
30+
}
31+
32+
public BuildImageCmdImpl(BuildImageCmd.Exec exec, File dockerFileOrFolder) {
2933
super(exec);
30-
checkNotNull(dockerFolder, "dockerFolder is null");
34+
checkNotNull(dockerFileOrFolder, "dockerFolder is null");
3135

32-
try {
33-
withTarInputStream(
34-
new Dockerfile(new File(dockerFolder, "Dockerfile"))
35-
.parse()
36-
.buildDockerFolderTar() );
37-
} catch (IOException e) {
38-
// we just created the file this should never happen.
39-
throw new RuntimeException(e);
40-
}
36+
if( dockerFileOrFolder.isDirectory() )
37+
withDockerfile( new File(dockerFileOrFolder, "Dockerfile"));
38+
else
39+
withDockerfile( dockerFileOrFolder);
4140
}
4241

4342
public BuildImageCmdImpl(BuildImageCmd.Exec exec, InputStream tarInputStream) {
@@ -51,6 +50,24 @@ public InputStream getTarInputStream() {
5150
return tarInputStream;
5251
}
5352

53+
@Override
54+
public BuildImageCmdImpl withDockerfile(File dockerfile) {
55+
checkNotNull(dockerfile);
56+
if( !dockerfile.exists() )
57+
throw new IllegalArgumentException("Dockerfile does not exist");
58+
59+
try {
60+
withTarInputStream(
61+
new Dockerfile(dockerfile)
62+
.parse()
63+
.buildDockerFolderTar() );
64+
} catch (IOException e) {
65+
// we just created the file this should never happen.
66+
throw new RuntimeException(e);
67+
}
68+
return this;
69+
}
70+
5471
@Override
5572
public BuildImageCmdImpl withTarInputStream(InputStream tarInputStream) {
5673
checkNotNull(tarInputStream, "tarInputStream is null");

0 commit comments

Comments
 (0)
X Tutup