From 7e8d773d3b149b1b011dfb895b45712fd757a908 Mon Sep 17 00:00:00 2001 From: Andrian Sevastyanov Date: Fri, 30 May 2025 11:10:40 -0600 Subject: [PATCH 1/4] Copy symbolic links to directories as symlinks instead of cloning the directories --- .../core/dockerfile/Dockerfile.java | 4 ++- .../DockerfileAddMultipleFilesTest.java | 28 +++++++++++++++++++ .../symlinks/symlinkToDir/Dockerfile | 2 ++ .../symlinkToDir/fileSystem/hello.txt | 1 + .../symlinks/symlinkToFile/Dockerfile | 2 ++ .../fileSystem/someDir/hello.txt | 1 + .../symlinkToFile/fileSystem/someLink | 1 + 7 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/Dockerfile create mode 100644 docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/fileSystem/hello.txt create mode 100644 docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/Dockerfile create mode 100644 docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someDir/hello.txt create mode 120000 docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someLink diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java b/docker-java-core/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java index 752935e19..7f1d67bd2 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java @@ -4,6 +4,8 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -203,7 +205,7 @@ private void addFilesInDirectory(File directory) { if (files.length != 0) { for (File f : files) { - if (f.isDirectory()) { + if (f.isDirectory() && !Files.isSymbolicLink(Paths.get(f.getAbsolutePath()))) { addFilesInDirectory(f); } else if (effectiveMatchingIgnorePattern(f) == null) { filesToAdd.add(f); diff --git a/docker-java/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileAddMultipleFilesTest.java b/docker-java/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileAddMultipleFilesTest.java index 6406647cf..b1b88d3ac 100644 --- a/docker-java/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileAddMultipleFilesTest.java +++ b/docker-java/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileAddMultipleFilesTest.java @@ -5,6 +5,9 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Collection; import static com.google.common.collect.Collections2.transform; @@ -68,6 +71,31 @@ public void addFiles() throws IOException { assertThat(filesToAdd, containsInAnyOrder("emptydir", "Dockerfile", "src1", "src2")); } + @Test + public void symlinkToFile() throws IOException { + File baseDir = fileFromBuildTestResource("symlinks/symlinkToFile"); + Dockerfile dockerFile = new Dockerfile(new File(baseDir, "Dockerfile"), baseDir); + Dockerfile.ScannedResult result = dockerFile.parse(); + Collection filesToAdd = transform(result.filesToAdd, TO_FILE_NAMES); + + assertThat(filesToAdd, containsInAnyOrder("hello.txt", "someLink", "Dockerfile")); + } + + @Test + public void symlinkToDir() throws IOException { + File baseDir = fileFromBuildTestResource("symlinks/symlinkToDir"); + String filesPath = Paths.get(baseDir.getAbsolutePath(), "fileSystem").toString(); + Path linkPath = Paths.get(filesPath, "someLink"); + if (Files.exists(linkPath)) + Files.delete(linkPath); + Files.createSymbolicLink(linkPath, Paths.get(filesPath, "someDir")); + Dockerfile dockerFile = new Dockerfile(new File(baseDir, "Dockerfile"), baseDir); + Dockerfile.ScannedResult result = dockerFile.parse(); + Collection filesToAdd = transform(result.filesToAdd, TO_FILE_NAMES); + + assertThat(filesToAdd, containsInAnyOrder("hello.txt", "someLink", "Dockerfile")); + } + private File fileFromBuildTestResource(String resource) { return new File(Thread.currentThread().getContextClassLoader() .getResource("buildTests/" + resource).getFile()); diff --git a/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/Dockerfile b/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/Dockerfile new file mode 100644 index 000000000..2b448ef17 --- /dev/null +++ b/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/Dockerfile @@ -0,0 +1,2 @@ +FROM scratch +COPY fileSystem/* . diff --git a/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/fileSystem/hello.txt b/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/fileSystem/hello.txt new file mode 100644 index 000000000..3b18e512d --- /dev/null +++ b/docker-java/src/test/resources/buildTests/symlinks/symlinkToDir/fileSystem/hello.txt @@ -0,0 +1 @@ +hello world diff --git a/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/Dockerfile b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/Dockerfile new file mode 100644 index 000000000..2b448ef17 --- /dev/null +++ b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/Dockerfile @@ -0,0 +1,2 @@ +FROM scratch +COPY fileSystem/* . diff --git a/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someDir/hello.txt b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someDir/hello.txt new file mode 100644 index 000000000..3b18e512d --- /dev/null +++ b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someDir/hello.txt @@ -0,0 +1 @@ +hello world diff --git a/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someLink b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someLink new file mode 120000 index 000000000..ba903fd32 --- /dev/null +++ b/docker-java/src/test/resources/buildTests/symlinks/symlinkToFile/fileSystem/someLink @@ -0,0 +1 @@ +someDir/hello.txt \ No newline at end of file From 64bb6a2dd455f50ba49d09cd5abcf17975a6eed6 Mon Sep 17 00:00:00 2001 From: Andrian Sevastyanov Date: Fri, 30 May 2025 11:56:23 -0600 Subject: [PATCH 2/4] Set custom patch version --- docker-java-api/pom.xml | 2 +- docker-java-bom/pom.xml | 2 +- docker-java-core/pom.xml | 2 +- docker-java-transport-httpclient5/pom.xml | 2 +- docker-java-transport-jersey/pom.xml | 2 +- docker-java-transport-netty/pom.xml | 2 +- docker-java-transport-okhttp/pom.xml | 2 +- docker-java-transport-tck/pom.xml | 2 +- docker-java-transport-zerodep/pom.xml | 2 +- docker-java-transport/pom.xml | 2 +- docker-java/pom.xml | 2 +- pom.xml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docker-java-api/pom.xml b/docker-java-api/pom.xml index d801546c0..6a25358f4 100644 --- a/docker-java-api/pom.xml +++ b/docker-java-api/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-bom/pom.xml b/docker-java-bom/pom.xml index 7066b3a67..9606623a0 100644 --- a/docker-java-bom/pom.xml +++ b/docker-java-bom/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-core/pom.xml b/docker-java-core/pom.xml index 290a1fed9..5666aa50c 100644 --- a/docker-java-core/pom.xml +++ b/docker-java-core/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-httpclient5/pom.xml b/docker-java-transport-httpclient5/pom.xml index 261922992..ee33a9034 100644 --- a/docker-java-transport-httpclient5/pom.xml +++ b/docker-java-transport-httpclient5/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-jersey/pom.xml b/docker-java-transport-jersey/pom.xml index fbef13f1e..99ad36cc3 100644 --- a/docker-java-transport-jersey/pom.xml +++ b/docker-java-transport-jersey/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-netty/pom.xml b/docker-java-transport-netty/pom.xml index 42fdd34b7..2ae4fff00 100644 --- a/docker-java-transport-netty/pom.xml +++ b/docker-java-transport-netty/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-okhttp/pom.xml b/docker-java-transport-okhttp/pom.xml index 3bac0cead..96d532ec3 100644 --- a/docker-java-transport-okhttp/pom.xml +++ b/docker-java-transport-okhttp/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-tck/pom.xml b/docker-java-transport-tck/pom.xml index 73161b458..93850641d 100644 --- a/docker-java-transport-tck/pom.xml +++ b/docker-java-transport-tck/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-zerodep/pom.xml b/docker-java-transport-zerodep/pom.xml index 3cccafa33..c6db85410 100644 --- a/docker-java-transport-zerodep/pom.xml +++ b/docker-java-transport-zerodep/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java-transport/pom.xml b/docker-java-transport/pom.xml index 96f1f850a..9dbbbdca3 100644 --- a/docker-java-transport/pom.xml +++ b/docker-java-transport/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/docker-java/pom.xml b/docker-java/pom.xml index e00c974d3..21270de54 100644 --- a/docker-java/pom.xml +++ b/docker-java/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 4acf4e175..0b3c0eb2a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.github.docker-java docker-java-parent pom - 0-SNAPSHOT + 3.5.1-blackduck-SNAPSHOT docker-java-parent https://github.com/docker-java/docker-java From ef9b87a304573f5a6a92af0791f5ad0b2e159617 Mon Sep 17 00:00:00 2001 From: Andrian Sevastyanov Date: Fri, 30 May 2025 14:09:12 -0600 Subject: [PATCH 3/4] Add deployment profiles --- pom.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pom.xml b/pom.xml index 0b3c0eb2a..8f924b480 100644 --- a/pom.xml +++ b/pom.xml @@ -359,6 +359,30 @@ + + snapshot-deployment + + false + + + + bds-artifactory + ${snapshotArtifactoryUrl} + + + + + deployment + + false + + + + bds-artifactory + ${releaseArtifactoryUrl} + + + From 363f621c3209ed636cfb1e34b656fb7bc7bac3c5 Mon Sep 17 00:00:00 2001 From: Andrian Sevastyanov Date: Fri, 30 May 2025 14:31:35 -0600 Subject: [PATCH 4/4] Update version --- docker-java-api/pom.xml | 2 +- docker-java-bom/pom.xml | 2 +- docker-java-core/pom.xml | 2 +- docker-java-transport-httpclient5/pom.xml | 2 +- docker-java-transport-jersey/pom.xml | 2 +- docker-java-transport-netty/pom.xml | 2 +- docker-java-transport-okhttp/pom.xml | 2 +- docker-java-transport-tck/pom.xml | 2 +- docker-java-transport-zerodep/pom.xml | 2 +- docker-java-transport/pom.xml | 2 +- docker-java/pom.xml | 2 +- pom.xml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docker-java-api/pom.xml b/docker-java-api/pom.xml index 6a25358f4..2dcd7e71a 100644 --- a/docker-java-api/pom.xml +++ b/docker-java-api/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-bom/pom.xml b/docker-java-bom/pom.xml index 9606623a0..b97a2260d 100644 --- a/docker-java-bom/pom.xml +++ b/docker-java-bom/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-core/pom.xml b/docker-java-core/pom.xml index 5666aa50c..4acc32ea1 100644 --- a/docker-java-core/pom.xml +++ b/docker-java-core/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-httpclient5/pom.xml b/docker-java-transport-httpclient5/pom.xml index ee33a9034..feecb02e5 100644 --- a/docker-java-transport-httpclient5/pom.xml +++ b/docker-java-transport-httpclient5/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-jersey/pom.xml b/docker-java-transport-jersey/pom.xml index 99ad36cc3..ec2d84f3b 100644 --- a/docker-java-transport-jersey/pom.xml +++ b/docker-java-transport-jersey/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-netty/pom.xml b/docker-java-transport-netty/pom.xml index 2ae4fff00..25fc77fe5 100644 --- a/docker-java-transport-netty/pom.xml +++ b/docker-java-transport-netty/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-okhttp/pom.xml b/docker-java-transport-okhttp/pom.xml index 96d532ec3..af5934ce4 100644 --- a/docker-java-transport-okhttp/pom.xml +++ b/docker-java-transport-okhttp/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-tck/pom.xml b/docker-java-transport-tck/pom.xml index 93850641d..7c1a5ca23 100644 --- a/docker-java-transport-tck/pom.xml +++ b/docker-java-transport-tck/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport-zerodep/pom.xml b/docker-java-transport-zerodep/pom.xml index c6db85410..f087670c8 100644 --- a/docker-java-transport-zerodep/pom.xml +++ b/docker-java-transport-zerodep/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java-transport/pom.xml b/docker-java-transport/pom.xml index 9dbbbdca3..da37ebcf0 100644 --- a/docker-java-transport/pom.xml +++ b/docker-java-transport/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/docker-java/pom.xml b/docker-java/pom.xml index 21270de54..aa78e32e9 100644 --- a/docker-java/pom.xml +++ b/docker-java/pom.xml @@ -4,7 +4,7 @@ com.github.docker-java docker-java-parent - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 8f924b480..8e24145d7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.github.docker-java docker-java-parent pom - 3.5.1-blackduck-SNAPSHOT + 3.5.1-blackduck.1-SNAPSHOT docker-java-parent https://github.com/docker-java/docker-java