X Tutup
Skip to content

Commit ceddab8

Browse files
Merge pull request #14 from jdpgrailsdev/master
Use RegEx to match ADD command from Dockerfile.
2 parents 1f84a6e + d71d968 commit ceddab8

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main/java/com/github/dockerjava/client/command/BuildImgCmd.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import java.util.ArrayList;
99
import java.util.List;
1010
import java.util.UUID;
11+
import java.util.regex.Matcher;
12+
import java.util.regex.Pattern;
1113

1214
import javax.ws.rs.core.MediaType;
1315
import javax.ws.rs.core.MultivaluedMap;
@@ -34,6 +36,8 @@ public class BuildImgCmd extends AbstrDockerCmd<BuildImgCmd, ClientResponse> {
3436

3537
private static final Logger LOGGER = LoggerFactory.getLogger(BuildImgCmd.class);
3638

39+
private static final Pattern ADD_PATTERN = Pattern.compile("^ADD\\s+(.*)\\s+(.*)$");
40+
3741
private File dockerFolder = null;
3842
private InputStream tarInputStream = null;
3943
private String tag;
@@ -122,13 +126,13 @@ protected File buildDockerFolderTar() {
122126
filesToAdd.add(dockerFile);
123127

124128
for (String cmd : dockerFileContent) {
125-
if (StringUtils.startsWithIgnoreCase(cmd.trim(), "ADD")) {
126-
String addArgs[] = StringUtils.split(cmd, " \t");
127-
if (addArgs.length != 3) {
129+
final Matcher matcher = ADD_PATTERN.matcher(cmd.trim());
130+
if (matcher.find()) {
131+
if (matcher.groupCount() != 2) {
128132
throw new DockerException(String.format("Wrong format on line [%s]", cmd));
129133
}
130134

131-
String resource = addArgs[1];
135+
String resource = matcher.group(1);
132136

133137
if(isFileResource(resource)) {
134138
File src = new File(resource);

0 commit comments

Comments
 (0)
X Tutup