Comments (15)
@rohanKanojia: Hi, Yeah, I checked it yesterday. The solution worked like a charm. I changed the Dockerfile
location to baseDirectory
.
I'll send in a commit in a few minutes.
I still have some suspicions about the exclusion statement because it wasn't actually working for the any even though it was supposed to. I'll check that some other time though. If I'll find there's any change might be required for that. I'll create a issue for that but for now I guess we can resolve this issue.
from jkube.
Thanks for help again.
from jkube.
@rohanKanojia / @manusa, Please look into this issue and if it seems a genuine issue, then assign it to me.
from jkube.
Hi @l3002
I'm sorry, but I'm failing to see the issue at hand.
The "Error in windows:" screenshot shows a truncated stacktrace precisely where the most critical part is, could you please attach that line using (backtic/code blocks)
```
$theStackTraceLine
```
Why is the path wrong in *nix-compatible file systems?
Would the issue be fixed for Windows in case the /
character was changed to \
in the following line:
https://github.com/eclipse/jkube/blob/5da6068d7756784aef9569568ee80f98da97e296/jkube-kit/build/api/src/main/java/org/eclipse/jkube/kit/build/api/assembly/AssemblyManager.java#L456
from jkube.
Hi @manusa, Sorry for the messy description, There was a lot to cover. The issue persists with both Windows and Linux.
In Windows:
at org.eclipse.jkube.kit.config.service.openshift.OpenshiftBuildService.buildSingleImage(OpenshiftBuildService.java:170)
at org.eclipse.jkube.kit.config.service.AbstractImageBuildService.processImage(AbstractImageBuildService.java:57)
at org.eclipse.jkube.kit.config.service.AbstractImageBuildService.build(AbstractImageBuildService.java:36)
at org.eclipse.jkube.kit.config.service.openshift.OpenshiftBuildServiceIntegrationTest.build_withDockerfileModeAndAssembly_shouldSucceed(OpenshiftBuildServiceIntegrationTest.java:254)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.util.regex.PatternSyntaxException: Stack overflow during pattern compilation near index 12
^target(?:(?:\\.*)|(?:))$
^
at java.base/java.util.regex.Pattern.error(Pattern.java:2028)
at java.base/java.util.regex.Pattern.<init>(Pattern.java:1432)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1095)
at java.base/sun.nio.fs.WindowsFileSystem.getPathMatcher(WindowsFileSystem.java:282)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.lambda$excludePathMatchers$5(AssemblyFileSetUtils.java:198)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Collections$2.tryAdvance(Collections.java:4853)
at java.base/java.util.Collections$2.forEachRemaining(Collections.java:4861)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.excludePathMatchers(AssemblyFileSetUtils.java:199)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.isNotExcluded(AssemblyFileSetUtils.java:190)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:166)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
This is occurring due to two reasons, one them is the relativized path for the source
, which should return the path in target/<directory-name>
form but returns <directory name>
The source code relativization of path is given below sourceDirectory.relativize(path).normalize()
This should return target/<directory-name>
because the glob pattern created at AssemblyManager.createDockerExcludesList()
is target{/**,}
which would remove any files in target
, which leads to our 2nd issue.
The second issue is that, we are not supposed to exclude all files in target
but just the destination subdirectory from it or any directories specified by the user. but due to the above glob glob:target{/**,}
all the files are being excluded when we change the relativized path to the correct form.
When all the files are being excluded nothing happens and it never enters the copy()
block of the code.
The same issue was encountered with Linux but it doesn't return a StackOverflow
rather it returns:
File name too long
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixCopyFile.copyFile(UnixCopyFile.java:246)
at java.base/sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:603)
at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:257)
at java.base/java.nio.file.Files.copy(Files.java:1305)
at org.eclipse.jkube.kit.common.util.FileUtil.copy(FileUtil.java:205)
at org.eclipse.jkube.kit.common.util.FileUtil.copy(FileUtil.java:201)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:173)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
at org.eclipse.jkube.kit.common.archive.AssemblyFileSetUtils.copy(AssemblyFileSetUtils.java:170)
This issue is occurring due to the same reasons mentioned above but here Unix's System call returns error for File Name Too Long
.
from jkube.
@l3002 : Hello, Could you please share steps to reproduce this problem?
from jkube.
@rohanKanojia: Sure, Just change outputDirectory
in jKubeServiceHub.Configuration
to target.getName()
in OpenshiftBuildServiceIntegrationTest
and run mvn clean install
for the project.
from jkube.
@manusa / @rohanKanojia: Were you guys able to reproduce the Issue?
from jkube.
@l3002 : I could reproduce the issue after making the abovementioned changes. However, I haven't checked what's causing this. I would like to find answers to these questions
Why is the test working when the absolute path is used in JKubeConfiguration?
.outputDirectory(target.getAbsolutePath())
What's the difference in behavior of isNotExcluded
filter when outputDirectory is changed to target.getName()
?
from jkube.
@rohanKanojia: I have been working on that and have made some progress with it.
The issue is occurring with target.getName()
because it creates the Destination Directory as the sub directory of itself. Whereas the Destination Directory for target.getAbsolutePath()
is a directory created outside the target
directory. Due to which it never needs to enter the exclusion part.
For target.getAbsolutePath()
:
NOTE: Here, the
target
is the destination directory.
It actually creates the destination directory in the parent directory of target
which is openshift-build-service
.
Now, For target.getName()
:
The exclusion statement should exclude the output sub directory (for example, target/myapp
) but it isn't therefore when it enters the if block it checks that it is a directory and force creates it and invokes copy on the all the subdirectory which again invokes the if block and force creates that new directory. Thus, creating an infinite recursion.
and so on.
from jkube.
@l3002 : Do you mean this issue is happening due to wrong expectation set in tests? Just because output directory name is target
?
In Mojos, this value is set to target/docker
https://github.com/eclipse/jkube/blob/8caae1af25655622875bf537b32814fd3648c189/kubernetes-maven-plugin/plugin/src/main/java/org/eclipse/jkube/maven/plugin/mojo/build/AbstractDockerMojo.java#L172-L173
What happens if you change value of target
variable to match this value?
target = Files.createDirectories(baseDirectory.toPath().resolve("target").resolve("docker")).toFile();
from jkube.
@rohanKanojia : I don't think that would solve the problem, Because the issue occurring, here,
In the copy()
, it creates the destination file once it resolves that the file source
is a directory. This must have been implemented for the openshift-build-service/target
itself which is our initial source directory, because after that when it recursively calls itself, it does that for the files contained in it.
But as the destination directory target/myapp/build/maven
is also present there it needs an exclusion statement for it so that it doesn't enter the the if
block.
Here, we needs to add the destination sub directory so that when it actually calls the exclude list and checks if isNotExcluded
then for destination this becomes false
and it never enters the if
block.
from jkube.
The more I look at the test build_withDockerfileModeAndAssembly_shouldSucceed
, the more I feel it's not set up correctly:
We're providing Dockerfile inside target directory (which looks a bit strange).
https://github.com/eclipse/jkube/blob/b64915ec6090dcb0171e45b6372052278210e6f3/jkube-kit/config/service/src/test/java/org/eclipse/jkube/kit/config/service/openshift/OpenshiftBuildServiceIntegrationTest.java#L224-L224
We don't provide any context directory, which means context directory would be Dockerfile's parent directory. Dockerfile's context directory is added to AssemblyFileSet:
https://github.com/eclipse/jkube/blob/8caae1af25655622875bf537b32814fd3648c189/jkube-kit/build/api/src/main/java/org/eclipse/jkube/kit/build/api/assembly/AssemblyManager.java#L432-L435
You can fix it by either changing Dockerfile
location to be under base directory:
final File dockerFile = new File(baseDirectory, "Dockerfile");
Or change the output directory to be different from build directory like I advised in my previous comment.
from jkube.
@rohanKanojia: Sorry, I missed your last comment yesterday. I'll see if the changing the Dockerfile's location to baseDirectory works.
I believe changing the output directory to be different from the build directory could work and has a strong chance of working. I'll test this in my local environment and let you know.
from jkube.
@l3002 : Hello, Did you get time to try it out? Is it working?
from jkube.
Related Issues (20)
- [OpenShift Maven Plugin] : Move duplicated methods in Mojos to a common interface HOT 2
- JavaExecGenerator does not honor %t setting HOT 4
- How can I use the org.eclipse.jkube.kubernetes plugin in Gradle Kotlin DSL? HOT 6
- DockerImageWatcherRestartContainerTest : Replace AssertJ's deprecated `asList()` DSL method with `asInstanceOf(InstanceOfAssertFactories.list(type.class))` HOT 1
- WildflyJARHealthCheckEnricherTest : Replace AssertJ's deprecated `asList()` DSL method with `asInstanceOf(InstanceOfAssertFactories.list(type.class))` HOT 1
- SpringBootWatcherIntegrationTest is failing on windows HOT 1
- BuildService : Replace outdated method for joining strings with inbuilt `String.join` HOT 8
- OpenShiftResourceMojoTest is failing on Windows due to use of `\n` as line separator HOT 4
- Remove workaround from KubernetesMockServerUtil once issue is fixed in KubernetesMockServer
- Replace deprecated method from Updatable interface HOT 2
- Incompatible descriptor's return type: ProcessorConfig HOT 4
- BuildOptions 'buildArgs.size() > 0' can be replaced with '!buildArgs.isEmpty()'
- BuildService 'nocache.length() == 0' can be replaced with 'nocache.isEmpty()'
- CommandLine 'toProcess.length() == 0' can be replaced with 'toProcess.isEmpty()'
- DockerFileBuilderTest 'line.trim().length() == 0' can be replaced with 'line.trim().isEmpty()'
- GoTimeUtil 'duration.length() == 0' can be replaced with 'duration.isEmpty()' HOT 2
- ImageChangeTriggerEnricher 'containerToImageMap.size() != 0' can be replaced with '!containerToImageMap.isEmpty()' HOT 3
- Remove duplicate dependency from `quickstarts/maven/micronaut4` `pom.xml` HOT 1
- `KubernetesHelperTest.exportKubernetesClientConfigToFile_worksWithKubernetesMockServer` is failing on windows HOT 1
- fix failing unit tests in `gradle-plugin/openshift` module HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jkube.