@@ -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