From cf5ba3cff86f59ad97d2aaca03dd795ec233c861 Mon Sep 17 00:00:00 2001 From: Butters Date: Tue, 19 May 2015 20:15:54 +0530 Subject: [PATCH] Fix to Issue #219 --- .../core/dockerfile/Dockerfile.java | 87 +++++-------------- 1 file changed, 22 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java index 802299a7c..13c51832f 100644 --- a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java +++ b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java @@ -169,75 +169,32 @@ public ScannedResult() throws IOException { ignores = getIgnores(); filesToAdd.add(dockerFile); - for (DockerfileStatement statement : getStatements()) { - if (statement instanceof DockerfileStatement.Env) { - processEnvStatement((DockerfileStatement.Env) statement); - } else if (statement instanceof DockerfileStatement.Add) { - processAddStatement((DockerfileStatement.Add) statement); - } - } - } - - private void processAddStatement(DockerfileStatement.Add add) throws IOException { - - add = add.transform(environmentMap); - - if (add.isFileResource()) { - - File dockerFolder = getDockerFolder(); - String resource = add.source; - - File src = new File(resource); - if (!src.isAbsolute()) { - src = new File(dockerFolder, resource); - } else { - throw new DockerClientException(String.format( - "Source file %s must be relative to %s", - src, dockerFolder)); - } + addAllFilesToContext(dockerFile.getParentFile()); - if (src.exists()) { - src = src.getCanonicalFile(); - if (src.isDirectory()) { - Collection files = FileUtils.listFiles(src, new GoLangMatchFileFilter(src, ignores), TrueFileFilter.INSTANCE); - filesToAdd.addAll(files); - } else if (!GoLangFileMatch.match(ignores, FilePathUtil.relativize(dockerFolder, src))) { - filesToAdd.add(src); - } else { - throw new DockerClientException(String.format("Source file %s is excluded by .dockerignore file", src)); - } - } else { - filesToAdd.addAll(resolveWildcards(src, ignores)); - } - } } - private Collection resolveWildcards(File file, List ignores) { - List filesToAdd = new ArrayList(); - - File parent = file.getParentFile(); - if (parent != null) { - if (parent.isDirectory()) { - Collection files = FileUtils.listFiles(parent, - new GoLangMatchFileFilter(parent, ignores), - TrueFileFilter.INSTANCE); - filesToAdd.addAll(files); - } else { - filesToAdd.addAll(resolveWildcards(parent, ignores)); - } - } else { - throw new DockerClientException(String.format( - "Source file %s doesn't exist", file)); - } - - return filesToAdd; + private void addAllFilesToContext(File dockerContextFolder) { + + File[] files = dockerContextFolder.listFiles(); + + if(files != null && files.length > 0) { + + for(File file : files) { + + filesToAdd.add(file); + + if(file.isDirectory()) { + + addAllFilesToContext(file); + + } + + } + + } + } - - private void processEnvStatement(DockerfileStatement.Env env) { - - environmentMap.put(env.variable, env.value); - } - + } }