Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.dockerjava.api.command;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

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

public boolean isQuiet();

public AuthConfigurations getBuildAuthConfigs();

public BuildImageCmd withDockerfile(File dockerfile);

public BuildImageCmd withTarInputStream(InputStream tarInputStream);

public BuildImageCmd withNoCache();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,9 @@ public CommitCmd commitCmd(String containerId) {
}

@Override
public BuildImageCmd buildImageCmd(File dockerFolder) {
public BuildImageCmd buildImageCmd(File dockerFileOrFolder) {
return new BuildImageCmdImpl(getDockerCmdExecFactory()
.createBuildImageCmdExec(), dockerFolder);
.createBuildImageCmdExec(), dockerFileOrFolder);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,18 @@ public class BuildImageCmdImpl extends AbstrDockerCmd<BuildImageCmd, BuildImageC
private boolean quiet;
private AuthConfigurations buildAuthConfigs;

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

public BuildImageCmdImpl(BuildImageCmd.Exec exec, File dockerFileOrFolder) {
super(exec);
checkNotNull(dockerFolder, "dockerFolder is null");
checkNotNull(dockerFileOrFolder, "dockerFolder is null");

try {
withTarInputStream(
new Dockerfile(new File(dockerFolder, "Dockerfile"))
.parse()
.buildDockerFolderTar() );
} catch (IOException e) {
// we just created the file this should never happen.
throw new RuntimeException(e);
}
if( dockerFileOrFolder.isDirectory() )
withDockerfile( new File(dockerFileOrFolder, "Dockerfile"));
else
withDockerfile( dockerFileOrFolder);
}

public BuildImageCmdImpl(BuildImageCmd.Exec exec, InputStream tarInputStream) {
Expand All @@ -51,6 +50,24 @@ public InputStream getTarInputStream() {
return tarInputStream;
}

@Override
public BuildImageCmdImpl withDockerfile(File dockerfile) {
checkNotNull(dockerfile);
if( !dockerfile.exists() )
throw new IllegalArgumentException("Dockerfile does not exist");

try {
withTarInputStream(
new Dockerfile(dockerfile)
.parse()
.buildDockerFolderTar() );
} catch (IOException e) {
// we just created the file this should never happen.
throw new RuntimeException(e);
}
return this;
}

@Override
public BuildImageCmdImpl withTarInputStream(InputStream tarInputStream) {
checkNotNull(tarInputStream, "tarInputStream is null");
Expand Down