diff --git a/src/main/java/com/github/dockerjava/client/command/BuildImgCmd.java b/src/main/java/com/github/dockerjava/client/command/BuildImgCmd.java index edaa3110c..0b718798a 100644 --- a/src/main/java/com/github/dockerjava/client/command/BuildImgCmd.java +++ b/src/main/java/com/github/dockerjava/client/command/BuildImgCmd.java @@ -8,6 +8,8 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; @@ -34,6 +36,8 @@ public class BuildImgCmd extends AbstrDockerCmd { private static final Logger LOGGER = LoggerFactory.getLogger(BuildImgCmd.class); + private static final Pattern ADD_PATTERN = Pattern.compile("^ADD\\s+(.*)\\s+(.*)$"); + private File dockerFolder = null; private InputStream tarInputStream = null; private String tag; @@ -122,13 +126,13 @@ protected File buildDockerFolderTar() { filesToAdd.add(dockerFile); for (String cmd : dockerFileContent) { - if (StringUtils.startsWithIgnoreCase(cmd.trim(), "ADD")) { - String addArgs[] = StringUtils.split(cmd, " \t"); - if (addArgs.length != 3) { + final Matcher matcher = ADD_PATTERN.matcher(cmd.trim()); + if (matcher.find()) { + if (matcher.groupCount() != 2) { throw new DockerException(String.format("Wrong format on line [%s]", cmd)); } - String resource = addArgs[1]; + String resource = matcher.group(1); if(isFileResource(resource)) { File src = new File(resource);