diff --git a/.github/workflows/amazoncorretto-17-al2023-maven-4.yml b/.github/workflows/amazoncorretto-17-al2023-maven-4.yml
new file mode 100644
index 00000000..86bfe86b
--- /dev/null
+++ b/.github/workflows/amazoncorretto-17-al2023-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-17-al2023-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-17-al2023-maven-4/**"
+ - .github/workflows/amazoncorretto-17-al2023-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-17-al2023-maven-4/**"
+ - .github/workflows/amazoncorretto-17-al2023-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-17-al2023-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-17-debian-maven-4.yml b/.github/workflows/amazoncorretto-17-debian-maven-4.yml
new file mode 100644
index 00000000..b4aedfd6
--- /dev/null
+++ b/.github/workflows/amazoncorretto-17-debian-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-17-debian-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-17-debian-maven-4/**"
+ - .github/workflows/amazoncorretto-17-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-17-debian-maven-4/**"
+ - .github/workflows/amazoncorretto-17-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-17-debian-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-17-maven-4.yml b/.github/workflows/amazoncorretto-17-maven-4.yml
new file mode 100644
index 00000000..3dae084c
--- /dev/null
+++ b/.github/workflows/amazoncorretto-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-17-maven-4/**"
+ - .github/workflows/amazoncorretto-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-17-maven-4/**"
+ - .github/workflows/amazoncorretto-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-17-windowsservercore-maven-4.yml b/.github/workflows/amazoncorretto-17-windowsservercore-maven-4.yml
new file mode 100644
index 00000000..1a7e9d4d
--- /dev/null
+++ b/.github/workflows/amazoncorretto-17-windowsservercore-maven-4.yml
@@ -0,0 +1,30 @@
+name: amazoncorretto-17-windowsservercore-maven-4
+
+on:
+ push:
+ paths:
+ - "amazoncorretto-17-windowsservercore-maven-4/**"
+ - "tests/**"
+ - github-action.ps1
+ - "!tests/*.bats"
+ - "!tests/*.bash"
+ - "!tests/Dockerfile"
+ - .github/workflows/_template_windows.yml
+ pull_request:
+ paths:
+ - "amazoncorretto-17-windowsservercore-maven-4/**"
+ - "tests/**"
+ - github-action.ps1
+ - "!tests/*.bash"
+ - "!tests/Dockerfile"
+ - .github/workflows/_template_windows.yml
+
+env:
+ DOCKER_PUSH: "true"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template_windows.yml
+ with:
+ directory: amazoncorretto-17-windowsservercore-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-21-al2023-maven-4.yml b/.github/workflows/amazoncorretto-21-al2023-maven-4.yml
new file mode 100644
index 00000000..d7dd2e99
--- /dev/null
+++ b/.github/workflows/amazoncorretto-21-al2023-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-21-al2023-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-21-al2023-maven-4/**"
+ - .github/workflows/amazoncorretto-21-al2023-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-21-al2023-maven-4/**"
+ - .github/workflows/amazoncorretto-21-al2023-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-21-al2023-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-21-debian-maven-4.yml b/.github/workflows/amazoncorretto-21-debian-maven-4.yml
new file mode 100644
index 00000000..24895f2c
--- /dev/null
+++ b/.github/workflows/amazoncorretto-21-debian-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-21-debian-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-21-debian-maven-4/**"
+ - .github/workflows/amazoncorretto-21-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-21-debian-maven-4/**"
+ - .github/workflows/amazoncorretto-21-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-21-debian-maven-4
+ secrets: inherit
diff --git a/.github/workflows/amazoncorretto-21-maven-4.yml b/.github/workflows/amazoncorretto-21-maven-4.yml
new file mode 100644
index 00000000..4b44e943
--- /dev/null
+++ b/.github/workflows/amazoncorretto-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: amazoncorretto-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "amazoncorretto-21-maven-4/**"
+ - .github/workflows/amazoncorretto-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "amazoncorretto-21-maven-4/**"
+ - .github/workflows/amazoncorretto-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: amazoncorretto-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/azulzulu-17-alpine-maven-4.yml b/.github/workflows/azulzulu-17-alpine-maven-4.yml
new file mode 100644
index 00000000..6246c143
--- /dev/null
+++ b/.github/workflows/azulzulu-17-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: azulzulu-17-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "azulzulu-17-alpine-maven-4/**"
+ - .github/workflows/azulzulu-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "azulzulu-17-alpine-maven-4/**"
+ - .github/workflows/azulzulu-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: azulzulu-17-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/azulzulu-17-maven-4.yml b/.github/workflows/azulzulu-17-maven-4.yml
new file mode 100644
index 00000000..85d1e106
--- /dev/null
+++ b/.github/workflows/azulzulu-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: azulzulu-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "azulzulu-17-maven-4/**"
+ - .github/workflows/azulzulu-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "azulzulu-17-maven-4/**"
+ - .github/workflows/azulzulu-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: azulzulu-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/azulzulu-17-windowsservercore-maven-4.yml b/.github/workflows/azulzulu-17-windowsservercore-maven-4.yml
new file mode 100644
index 00000000..c952016f
--- /dev/null
+++ b/.github/workflows/azulzulu-17-windowsservercore-maven-4.yml
@@ -0,0 +1,30 @@
+name: azulzulu-17-windowsservercore-maven-4
+
+on:
+ push:
+ paths:
+ - "azulzulu-17-windowsservercore-maven-4/**"
+ - "tests/**"
+ - github-action.ps1
+ - "!tests/*.bats"
+ - "!tests/*.bash"
+ - "!tests/Dockerfile"
+ - .github/workflows/_template_windows.yml
+ pull_request:
+ paths:
+ - "azulzulu-17-windowsservercore-maven-4/**"
+ - "tests/**"
+ - github-action.ps1
+ - "!tests/*.bash"
+ - "!tests/Dockerfile"
+ - .github/workflows/_template_windows.yml
+
+env:
+ DOCKER_PUSH: "true"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template_windows.yml
+ with:
+ directory: azulzulu-17-windowsservercore-maven-4
+ secrets: inherit
diff --git a/.github/workflows/azulzulu-21-alpine-maven-4.yml b/.github/workflows/azulzulu-21-alpine-maven-4.yml
new file mode 100644
index 00000000..42826332
--- /dev/null
+++ b/.github/workflows/azulzulu-21-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: azulzulu-21-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "azulzulu-21-alpine-maven-4/**"
+ - .github/workflows/azulzulu-21-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "azulzulu-21-alpine-maven-4/**"
+ - .github/workflows/azulzulu-21-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: azulzulu-21-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/azulzulu-21-maven-4.yml b/.github/workflows/azulzulu-21-maven-4.yml
new file mode 100644
index 00000000..d916f39e
--- /dev/null
+++ b/.github/workflows/azulzulu-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: azulzulu-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "azulzulu-21-maven-4/**"
+ - .github/workflows/azulzulu-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "azulzulu-21-maven-4/**"
+ - .github/workflows/azulzulu-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: azulzulu-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-17-alpine-maven-4.yml b/.github/workflows/eclipse-temurin-17-alpine-maven-4.yml
new file mode 100644
index 00000000..4fa95307
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-17-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-17-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-17-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-17-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-17-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-17-focal-maven-4.yml b/.github/workflows/eclipse-temurin-17-focal-maven-4.yml
new file mode 100644
index 00000000..84fd9d8f
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-17-focal-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-17-focal-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-17-focal-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-focal-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-17-focal-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-focal-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-17-focal-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-17-maven-4.yml b/.github/workflows/eclipse-temurin-17-maven-4.yml
new file mode 100644
index 00000000..9faa210c
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-17-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-17-maven-4/**"
+ - .github/workflows/eclipse-temurin-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-21-alpine-maven-4.yml b/.github/workflows/eclipse-temurin-21-alpine-maven-4.yml
new file mode 100644
index 00000000..00b6161d
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-21-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-21-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-21-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-21-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-21-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-21-jammy-maven-4.yml b/.github/workflows/eclipse-temurin-21-jammy-maven-4.yml
new file mode 100644
index 00000000..f2a8688c
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-21-jammy-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-21-jammy-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-21-jammy-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-21-jammy-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-21-jammy-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-21-maven-4.yml b/.github/workflows/eclipse-temurin-21-maven-4.yml
new file mode 100644
index 00000000..78cffea0
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-21-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-21-maven-4/**"
+ - .github/workflows/eclipse-temurin-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-22-alpine-maven-4.yml b/.github/workflows/eclipse-temurin-22-alpine-maven-4.yml
new file mode 100644
index 00000000..83f6b508
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-22-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-22-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-22-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-22-alpine-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-22-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-22-jammy-maven-4.yml b/.github/workflows/eclipse-temurin-22-jammy-maven-4.yml
new file mode 100644
index 00000000..3c0153e2
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-22-jammy-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-22-jammy-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-22-jammy-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-22-jammy-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-22-jammy-maven-4
+ secrets: inherit
diff --git a/.github/workflows/eclipse-temurin-22-maven-4.yml b/.github/workflows/eclipse-temurin-22-maven-4.yml
new file mode 100644
index 00000000..e3ce879f
--- /dev/null
+++ b/.github/workflows/eclipse-temurin-22-maven-4.yml
@@ -0,0 +1,32 @@
+name: eclipse-temurin-22-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "eclipse-temurin-22-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "eclipse-temurin-22-maven-4/**"
+ - .github/workflows/eclipse-temurin-22-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: eclipse-temurin-22-maven-4
+ secrets: inherit
diff --git a/.github/workflows/graalvm-community-17-maven-4.yml b/.github/workflows/graalvm-community-17-maven-4.yml
new file mode 100644
index 00000000..287a57c4
--- /dev/null
+++ b/.github/workflows/graalvm-community-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: graalvm-community-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "graalvm-community-17-maven-4/**"
+ - .github/workflows/graalvm-community-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "graalvm-community-17-maven-4/**"
+ - .github/workflows/graalvm-community-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: graalvm-community-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/graalvm-community-21-maven-4.yml b/.github/workflows/graalvm-community-21-maven-4.yml
new file mode 100644
index 00000000..17f05cc1
--- /dev/null
+++ b/.github/workflows/graalvm-community-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: graalvm-community-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "graalvm-community-21-maven-4/**"
+ - .github/workflows/graalvm-community-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "graalvm-community-21-maven-4/**"
+ - .github/workflows/graalvm-community-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: graalvm-community-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/ibm-semeru-17-focal-maven-4.yml b/.github/workflows/ibm-semeru-17-focal-maven-4.yml
new file mode 100644
index 00000000..2c3242af
--- /dev/null
+++ b/.github/workflows/ibm-semeru-17-focal-maven-4.yml
@@ -0,0 +1,32 @@
+name: ibm-semeru-17-focal-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "ibm-semeru-17-focal-maven-4/**"
+ - .github/workflows/ibm-semeru-17-focal-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "ibm-semeru-17-focal-maven-4/**"
+ - .github/workflows/ibm-semeru-17-focal-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: ibm-semeru-17-focal-maven-4
+ secrets: inherit
diff --git a/.github/workflows/ibm-semeru-21-jammy-maven-4.yml b/.github/workflows/ibm-semeru-21-jammy-maven-4.yml
new file mode 100644
index 00000000..aa1eaaed
--- /dev/null
+++ b/.github/workflows/ibm-semeru-21-jammy-maven-4.yml
@@ -0,0 +1,32 @@
+name: ibm-semeru-21-jammy-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "ibm-semeru-21-jammy-maven-4/**"
+ - .github/workflows/ibm-semeru-21-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "ibm-semeru-21-jammy-maven-4/**"
+ - .github/workflows/ibm-semeru-21-jammy-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: ibm-semeru-21-jammy-maven-4
+ secrets: inherit
diff --git a/.github/workflows/libericaopenjdk-17-alpine-maven-4.yml b/.github/workflows/libericaopenjdk-17-alpine-maven-4.yml
new file mode 100644
index 00000000..87f291b8
--- /dev/null
+++ b/.github/workflows/libericaopenjdk-17-alpine-maven-4.yml
@@ -0,0 +1,32 @@
+name: libericaopenjdk-17-alpine-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "libericaopenjdk-17-alpine-maven-4/**"
+ - .github/workflows/libericaopenjdk-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "libericaopenjdk-17-alpine-maven-4/**"
+ - .github/workflows/libericaopenjdk-17-alpine-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: libericaopenjdk-17-alpine-maven-4
+ secrets: inherit
diff --git a/.github/workflows/libericaopenjdk-17-debian-maven-4.yml b/.github/workflows/libericaopenjdk-17-debian-maven-4.yml
new file mode 100644
index 00000000..676243a4
--- /dev/null
+++ b/.github/workflows/libericaopenjdk-17-debian-maven-4.yml
@@ -0,0 +1,32 @@
+name: libericaopenjdk-17-debian-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "libericaopenjdk-17-debian-maven-4/**"
+ - .github/workflows/libericaopenjdk-17-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "libericaopenjdk-17-debian-maven-4/**"
+ - .github/workflows/libericaopenjdk-17-debian-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: libericaopenjdk-17-debian-maven-4
+ secrets: inherit
diff --git a/.github/workflows/microsoft-openjdk-17-ubuntu-maven-4.yml b/.github/workflows/microsoft-openjdk-17-ubuntu-maven-4.yml
new file mode 100644
index 00000000..0206fbc7
--- /dev/null
+++ b/.github/workflows/microsoft-openjdk-17-ubuntu-maven-4.yml
@@ -0,0 +1,32 @@
+name: microsoft-openjdk-17-ubuntu-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "microsoft-openjdk-17-ubuntu-maven-4/**"
+ - .github/workflows/microsoft-openjdk-17-ubuntu-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "microsoft-openjdk-17-ubuntu-maven-4/**"
+ - .github/workflows/microsoft-openjdk-17-ubuntu-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: microsoft-openjdk-17-ubuntu-maven-4
+ secrets: inherit
diff --git a/.github/workflows/microsoft-openjdk-21-ubuntu-maven-4.yml b/.github/workflows/microsoft-openjdk-21-ubuntu-maven-4.yml
new file mode 100644
index 00000000..cb44112a
--- /dev/null
+++ b/.github/workflows/microsoft-openjdk-21-ubuntu-maven-4.yml
@@ -0,0 +1,32 @@
+name: microsoft-openjdk-21-ubuntu-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "microsoft-openjdk-21-ubuntu-maven-4/**"
+ - .github/workflows/microsoft-openjdk-21-ubuntu-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "microsoft-openjdk-21-ubuntu-maven-4/**"
+ - .github/workflows/microsoft-openjdk-21-ubuntu-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: microsoft-openjdk-21-ubuntu-maven-4
+ secrets: inherit
diff --git a/.github/workflows/oracle-graalvm-17-maven-4.yml b/.github/workflows/oracle-graalvm-17-maven-4.yml
new file mode 100644
index 00000000..27002828
--- /dev/null
+++ b/.github/workflows/oracle-graalvm-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: oracle-graalvm-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "oracle-graalvm-17-maven-4/**"
+ - .github/workflows/oracle-graalvm-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "oracle-graalvm-17-maven-4/**"
+ - .github/workflows/oracle-graalvm-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: oracle-graalvm-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/oracle-graalvm-21-maven-4.yml b/.github/workflows/oracle-graalvm-21-maven-4.yml
new file mode 100644
index 00000000..403856d6
--- /dev/null
+++ b/.github/workflows/oracle-graalvm-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: oracle-graalvm-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "oracle-graalvm-21-maven-4/**"
+ - .github/workflows/oracle-graalvm-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "oracle-graalvm-21-maven-4/**"
+ - .github/workflows/oracle-graalvm-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: oracle-graalvm-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/sapmachine-17-maven-4.yml b/.github/workflows/sapmachine-17-maven-4.yml
new file mode 100644
index 00000000..f45a3bd2
--- /dev/null
+++ b/.github/workflows/sapmachine-17-maven-4.yml
@@ -0,0 +1,32 @@
+name: sapmachine-17-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "sapmachine-17-maven-4/**"
+ - .github/workflows/sapmachine-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "sapmachine-17-maven-4/**"
+ - .github/workflows/sapmachine-17-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: sapmachine-17-maven-4
+ secrets: inherit
diff --git a/.github/workflows/sapmachine-21-maven-4.yml b/.github/workflows/sapmachine-21-maven-4.yml
new file mode 100644
index 00000000..95b2f225
--- /dev/null
+++ b/.github/workflows/sapmachine-21-maven-4.yml
@@ -0,0 +1,32 @@
+name: sapmachine-21-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "sapmachine-21-maven-4/**"
+ - .github/workflows/sapmachine-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "sapmachine-21-maven-4/**"
+ - .github/workflows/sapmachine-21-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: sapmachine-21-maven-4
+ secrets: inherit
diff --git a/.github/workflows/sapmachine-22-maven-4.yml b/.github/workflows/sapmachine-22-maven-4.yml
new file mode 100644
index 00000000..1b25c8a5
--- /dev/null
+++ b/.github/workflows/sapmachine-22-maven-4.yml
@@ -0,0 +1,32 @@
+name: sapmachine-22-maven-4
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - "sapmachine-22-maven-4/**"
+ - .github/workflows/sapmachine-22-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+ pull_request:
+ paths:
+ - "sapmachine-22-maven-4/**"
+ - .github/workflows/sapmachine-22-maven-4.yml
+ - .github/workflows/_template.yml
+ - common.sh
+ - tags-for-dir.sh
+ - "tests/**"
+ - "!tests/*.ps*"
+ - "!tests/*.windows"
+
+jobs:
+ build:
+ uses: ./.github/workflows/_template.yml
+ with:
+ directory: sapmachine-22-maven-4
+ secrets: inherit
diff --git a/Dockerfile-template-maven-4 b/Dockerfile-template-maven-4
new file mode 100644
index 00000000..9e9c3771
--- /dev/null
+++ b/Dockerfile-template-maven-4
@@ -0,0 +1,20 @@
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-17-al2023-maven-4/Dockerfile b/amazoncorretto-17-al2023-maven-4/Dockerfile
new file mode 100644
index 00000000..9c41d094
--- /dev/null
+++ b/amazoncorretto-17-al2023-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM amazoncorretto:17-al2023
+
+RUN yum install -y openssh-clients findutils
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-17-debian-maven-4/Dockerfile b/amazoncorretto-17-debian-maven-4/Dockerfile
new file mode 100644
index 00000000..6a9fa54c
--- /dev/null
+++ b/amazoncorretto-17-debian-maven-4/Dockerfile
@@ -0,0 +1,41 @@
+# Update EXTRA_TAG_SUFFIXES to new release when changing to next stable debian release
+# EXTRA_TAG_SUFFIXES=bookworm
+FROM debian:bookworm-slim
+
+# install corretto after verifying that the key is the one we expect.
+# and keep openssh client
+RUN apt-get update \
+ && apt-get install -y curl gnupg openssh-client \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && curl -fL https://apt.corretto.aws/corretto.key | gpg --batch --import \
+ && gpg --batch --export '6DC3636DAE534049C8B94623A122542AB04F24E3' > /usr/share/keyrings/corretto.gpg \
+ && unset GNUPGHOME \
+ && echo "deb [signed-by=/usr/share/keyrings/corretto.gpg] https://apt.corretto.aws stable main" > /etc/apt/sources.list.d/corretto.list \
+ && apt-get update \
+ && apt-get remove --purge --autoremove -y curl gnupg \
+ && apt-get install -y java-17-amazon-corretto-jdk \
+ && rm -rf /var/lib/apt/lists/*
+
+# set JAVA_HOME manually since nothing else will set it
+ENV JAVA_HOME="/usr/lib/jvm/java-17-amazon-corretto"
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-17-maven-4/Dockerfile b/amazoncorretto-17-maven-4/Dockerfile
new file mode 100644
index 00000000..8b819bb5
--- /dev/null
+++ b/amazoncorretto-17-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM amazoncorretto:17
+
+RUN yum install -y openssh-clients
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-17-windowsservercore-maven-4/Dockerfile b/amazoncorretto-17-windowsservercore-maven-4/Dockerfile
new file mode 100644
index 00000000..80e2e8fb
--- /dev/null
+++ b/amazoncorretto-17-windowsservercore-maven-4/Dockerfile
@@ -0,0 +1,46 @@
+# escape=`
+FROM mcr.microsoft.com/windows/servercore:ltsc2019
+
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ARG zip=amazon-corretto-17-x64-windows-jdk.zip
+ARG uri=https://corretto.aws/downloads/latest
+ARG hash=df6cb295eb17ba7e898f99657da977bb96389c5e97de94f3a06053650d7c4e16
+
+RUN Invoke-WebRequest -Uri $('{0}/{1}' -f $env:uri,$env:zip) -OutFile C:/$env:zip ; `
+ if((Get-FileHash C:/$env:zip -Algorithm SHA256).Hash.ToLower() -ne $env:hash) { exit 1 } ; `
+ Expand-Archive -Path C:/$env:zip -Destination C:/ProgramData ; `
+ Remove-Item C:/${env:zip}
+
+ENV JAVA_HOME=C:/ProgramData/jdk17.0.12_7
+
+ARG USER_HOME_DIR="C:/Users/ContainerUser"
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG SHA=49d656042813ead127613da3c85e063c41ef5a25b54ec783d90b51fbc1ad7401f0c0d4c860536d6baea180ab533c84d52c8e38b0c6ab52cc699105ead0418ab4
+ARG BASE_URL=https://apache.osuosl.org/maven/maven-4/${MAVEN_VERSION}/binaries
+
+RUN Invoke-WebRequest -Uri ${env:BASE_URL}/apache-maven-${env:MAVEN_VERSION}-bin.zip -OutFile ${env:TEMP}/apache-maven.zip ; `
+ if((Get-FileHash -Algorithm SHA512 -Path ${env:TEMP}/apache-maven.zip).Hash.ToLower() -ne ${env:SHA}) { exit 1 } ; `
+ Expand-Archive -Path ${env:TEMP}/apache-maven.zip -Destination C:/ProgramData ; `
+ Move-Item C:/ProgramData/apache-maven-${env:MAVEN_VERSION} C:/ProgramData/Maven ; `
+ New-Item -ItemType Directory -Path C:/ProgramData/Maven/Reference | Out-Null ; `
+ Remove-Item ${env:TEMP}/apache-maven.zip
+
+ENV MAVEN_HOME=C:/ProgramData/Maven
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+COPY mvn-entrypoint.ps1 C:/ProgramData/Maven/mvn-entrypoint.ps1
+COPY settings-docker.xml C:/ProgramData/Maven/Reference/settings-docker.xml
+
+RUN setx /M PATH $('{0};{1}' -f $env:PATH,'C:\ProgramData\Maven\bin') | Out-Null
+
+USER ContainerUser
+ENV JAVA_HOME=${JAVA_HOME}
+
+ENTRYPOINT ["powershell.exe", "-f", "C:/ProgramData/Maven/mvn-entrypoint.ps1"]
+CMD ["mvn"]
diff --git a/amazoncorretto-17-windowsservercore-maven-4/mvn-entrypoint.ps1 b/amazoncorretto-17-windowsservercore-maven-4/mvn-entrypoint.ps1
new file mode 100644
index 00000000..13e3319b
--- /dev/null
+++ b/amazoncorretto-17-windowsservercore-maven-4/mvn-entrypoint.ps1
@@ -0,0 +1,49 @@
+
+# Copy files from C:/ProgramData/Maven/Reference into ${MAVEN_CONFIG}
+# So the initial ~/.m2 is set with expected content.
+# Don't override, as this is just a reference setup
+
+function Copy-ReferenceFiles() {
+ $log = "${env:MAVEN_CONFIG}/copy_reference_file.log"
+ $ref = "C:/ProgramData/Maven/Reference"
+
+ $repo = Join-Path $env:MAVEN_CONFIG 'repository'
+
+ New-Item -Path $repo -ItemType Directory -Force | Out-Null
+ Write-Output $null > $log
+ if((Test-Path $repo) -and (Test-Path $log)) {
+ $count = (Get-ChildItem $repo | Measure-Object).Count
+ if($count -eq 0) {
+ # destination is empty...
+ Add-Content -Path $log -Value "--- Copying all files to ${env:MAVEN_CONFIG} at $(Get-Date)"
+ Copy-Item -Path "$ref\*" -Destination $env:MAVEN_CONFIG -Force -Recurse | Add-Content -Path $log
+ } else {
+ # destination is non-empty, copy file-by-file
+ Add-Content -Path $log -Value "--- Copying individual files to ${MAVEN_CONFIG} at $(Get-Date)"
+ Get-ChildItem -Path $ref -File | ForEach-Object {
+ Push-Location $ref
+ $rel = Resolve-Path -Path $($_.FullName) -Relative
+ Pop-Location
+ if(!(Test-Path (Join-Path $env:MAVEN_CONFIG $rel)) -or (Test-Path $('{0}.override' -f $_.FullName))) {
+ $dir = Join-Path $env:MAVEN_CONFIG $($rel.DirectoryName)
+ if(!(Test-Path $dir)) {
+ New-Item -Path $dir -ItemType Directory | Out-Null
+ }
+ Copy-Item -Path $_.FullName -Destination (Join-Path $env:MAVEN_CONFIG $rel) | Add-Content -Path $log
+ }
+ }
+ }
+ Add-Content -Path $log -Value ""
+ } else {
+ Write-Warning "Can not write to ${log}. Wrong volume permissions? Carrying on ..."
+ }
+}
+
+Push-Location -StackName 'maven-entrypoint'
+Copy-ReferenceFiles
+Pop-Location -StackName 'maven-entrypoint'
+
+Remove-Item Env:\MAVEN_CONFIG
+
+Invoke-Expression "$args"
+exit $lastExitCode
diff --git a/amazoncorretto-17-windowsservercore-maven-4/settings-docker.xml b/amazoncorretto-17-windowsservercore-maven-4/settings-docker.xml
new file mode 100644
index 00000000..9cd1a5ea
--- /dev/null
+++ b/amazoncorretto-17-windowsservercore-maven-4/settings-docker.xml
@@ -0,0 +1,6 @@
+
+ C:\ProgramData\Maven\Reference\repository
+
diff --git a/amazoncorretto-21-al2023-maven-4/Dockerfile b/amazoncorretto-21-al2023-maven-4/Dockerfile
new file mode 100644
index 00000000..4a2dd9dc
--- /dev/null
+++ b/amazoncorretto-21-al2023-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM amazoncorretto:21-al2023
+
+RUN yum install -y openssh-clients findutils
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-21-debian-maven-4/Dockerfile b/amazoncorretto-21-debian-maven-4/Dockerfile
new file mode 100644
index 00000000..2d316eac
--- /dev/null
+++ b/amazoncorretto-21-debian-maven-4/Dockerfile
@@ -0,0 +1,41 @@
+# Update EXTRA_TAG_SUFFIXES to new release when changing to next stable debian release
+# EXTRA_TAG_SUFFIXES=bookworm
+FROM debian:bookworm-slim
+
+# install corretto after verifying that the key is the one we expect.
+# and keep openssh client
+RUN apt-get update \
+ && apt-get install -y curl gnupg openssh-client \
+ && export GNUPGHOME="$(mktemp -d)" \
+ && curl -fL https://apt.corretto.aws/corretto.key | gpg --batch --import \
+ && gpg --batch --export '6DC3636DAE534049C8B94623A122542AB04F24E3' > /usr/share/keyrings/corretto.gpg \
+ && unset GNUPGHOME \
+ && echo "deb [signed-by=/usr/share/keyrings/corretto.gpg] https://apt.corretto.aws stable main" > /etc/apt/sources.list.d/corretto.list \
+ && apt-get update \
+ && apt-get remove --purge --autoremove -y curl gnupg \
+ && apt-get install -y java-21-amazon-corretto-jdk \
+ && rm -rf /var/lib/apt/lists/*
+
+# set JAVA_HOME manually since nothing else will set it
+ENV JAVA_HOME="/usr/lib/jvm/java-21-amazon-corretto"
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/amazoncorretto-21-maven-4/Dockerfile b/amazoncorretto-21-maven-4/Dockerfile
new file mode 100644
index 00000000..f84cb3a2
--- /dev/null
+++ b/amazoncorretto-21-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM amazoncorretto:21
+
+RUN yum install -y openssh-clients
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/azulzulu-17-alpine-maven-4/Dockerfile b/azulzulu-17-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..a883230f
--- /dev/null
+++ b/azulzulu-17-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM azul/zulu-openjdk-alpine:17
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/azulzulu-17-maven-4/Dockerfile b/azulzulu-17-maven-4/Dockerfile
new file mode 100644
index 00000000..29f73f80
--- /dev/null
+++ b/azulzulu-17-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM azul/zulu-openjdk:17
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/azulzulu-17-windowsservercore-maven-4/Dockerfile b/azulzulu-17-windowsservercore-maven-4/Dockerfile
new file mode 100644
index 00000000..401a01dd
--- /dev/null
+++ b/azulzulu-17-windowsservercore-maven-4/Dockerfile
@@ -0,0 +1,46 @@
+# escape=`
+FROM mcr.microsoft.com/windows/servercore:ltsc2019
+
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ARG zip=zulu17.48.15-ca-jdk17.0.10-win_x64.zip
+ARG uri=https://cdn.azul.com/zulu/bin
+ARG hash=169bcb1c519a1cf18e3589bcbaea036eb8114311425660e6c919376227855be3
+
+RUN Invoke-WebRequest -Uri $('{0}/{1}' -f $env:uri,$env:zip) -OutFile C:/$env:zip ; `
+ if((Get-FileHash C:/$env:zip -Algorithm SHA256).Hash.ToLower() -ne $env:hash) { exit 1 } ; `
+ Expand-Archive -Path C:/$env:zip -Destination C:/ProgramData ; `
+ Remove-Item C:/${env:zip}
+
+ARG USER_HOME_DIR="C:/Users/ContainerUser"
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG SHA=49d656042813ead127613da3c85e063c41ef5a25b54ec783d90b51fbc1ad7401f0c0d4c860536d6baea180ab533c84d52c8e38b0c6ab52cc699105ead0418ab4
+ARG BASE_URL=https://apache.osuosl.org/maven/maven-4/${MAVEN_VERSION}/binaries
+
+RUN Invoke-WebRequest -Uri ${env:BASE_URL}/apache-maven-${env:MAVEN_VERSION}-bin.zip -OutFile ${env:TEMP}/apache-maven.zip ; `
+ if((Get-FileHash -Algorithm SHA512 -Path ${env:TEMP}/apache-maven.zip).Hash.ToLower() -ne ${env:SHA}) { exit 1 } ; `
+ Expand-Archive -Path ${env:TEMP}/apache-maven.zip -Destination C:/ProgramData ; `
+ Move-Item C:/ProgramData/apache-maven-${env:MAVEN_VERSION} C:/ProgramData/Maven ; `
+ New-Item -ItemType Directory -Path C:/ProgramData/Maven/Reference | Out-Null ; `
+ Remove-Item ${env:TEMP}/apache-maven.zip
+
+ENV MAVEN_HOME=C:/ProgramData/Maven
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENV JAVA_HOME=C:/ProgramData/zulu17.48.15-ca-jdk17.0.10-win_x64
+
+COPY mvn-entrypoint.ps1 C:/ProgramData/Maven/mvn-entrypoint.ps1
+COPY settings-docker.xml C:/ProgramData/Maven/Reference/settings-docker.xml
+
+RUN setx /M PATH $('{0};{1}' -f $env:PATH,'C:\ProgramData\Maven\bin') | Out-Null
+
+USER ContainerUser
+ENV JAVA_HOME=${JAVA_HOME}
+
+ENTRYPOINT ["powershell.exe", "-f", "C:/ProgramData/Maven/mvn-entrypoint.ps1"]
+CMD ["mvn"]
diff --git a/azulzulu-17-windowsservercore-maven-4/mvn-entrypoint.ps1 b/azulzulu-17-windowsservercore-maven-4/mvn-entrypoint.ps1
new file mode 100644
index 00000000..13e3319b
--- /dev/null
+++ b/azulzulu-17-windowsservercore-maven-4/mvn-entrypoint.ps1
@@ -0,0 +1,49 @@
+
+# Copy files from C:/ProgramData/Maven/Reference into ${MAVEN_CONFIG}
+# So the initial ~/.m2 is set with expected content.
+# Don't override, as this is just a reference setup
+
+function Copy-ReferenceFiles() {
+ $log = "${env:MAVEN_CONFIG}/copy_reference_file.log"
+ $ref = "C:/ProgramData/Maven/Reference"
+
+ $repo = Join-Path $env:MAVEN_CONFIG 'repository'
+
+ New-Item -Path $repo -ItemType Directory -Force | Out-Null
+ Write-Output $null > $log
+ if((Test-Path $repo) -and (Test-Path $log)) {
+ $count = (Get-ChildItem $repo | Measure-Object).Count
+ if($count -eq 0) {
+ # destination is empty...
+ Add-Content -Path $log -Value "--- Copying all files to ${env:MAVEN_CONFIG} at $(Get-Date)"
+ Copy-Item -Path "$ref\*" -Destination $env:MAVEN_CONFIG -Force -Recurse | Add-Content -Path $log
+ } else {
+ # destination is non-empty, copy file-by-file
+ Add-Content -Path $log -Value "--- Copying individual files to ${MAVEN_CONFIG} at $(Get-Date)"
+ Get-ChildItem -Path $ref -File | ForEach-Object {
+ Push-Location $ref
+ $rel = Resolve-Path -Path $($_.FullName) -Relative
+ Pop-Location
+ if(!(Test-Path (Join-Path $env:MAVEN_CONFIG $rel)) -or (Test-Path $('{0}.override' -f $_.FullName))) {
+ $dir = Join-Path $env:MAVEN_CONFIG $($rel.DirectoryName)
+ if(!(Test-Path $dir)) {
+ New-Item -Path $dir -ItemType Directory | Out-Null
+ }
+ Copy-Item -Path $_.FullName -Destination (Join-Path $env:MAVEN_CONFIG $rel) | Add-Content -Path $log
+ }
+ }
+ }
+ Add-Content -Path $log -Value ""
+ } else {
+ Write-Warning "Can not write to ${log}. Wrong volume permissions? Carrying on ..."
+ }
+}
+
+Push-Location -StackName 'maven-entrypoint'
+Copy-ReferenceFiles
+Pop-Location -StackName 'maven-entrypoint'
+
+Remove-Item Env:\MAVEN_CONFIG
+
+Invoke-Expression "$args"
+exit $lastExitCode
diff --git a/azulzulu-17-windowsservercore-maven-4/settings-docker.xml b/azulzulu-17-windowsservercore-maven-4/settings-docker.xml
new file mode 100644
index 00000000..9cd1a5ea
--- /dev/null
+++ b/azulzulu-17-windowsservercore-maven-4/settings-docker.xml
@@ -0,0 +1,6 @@
+
+ C:\ProgramData\Maven\Reference\repository
+
diff --git a/azulzulu-21-alpine-maven-4/Dockerfile b/azulzulu-21-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..2a6438d0
--- /dev/null
+++ b/azulzulu-21-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM azul/zulu-openjdk-alpine:21
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/azulzulu-21-maven-4/Dockerfile b/azulzulu-21-maven-4/Dockerfile
new file mode 100644
index 00000000..4a8d1475
--- /dev/null
+++ b/azulzulu-21-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM azul/zulu-openjdk:21
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-17-alpine-maven-4/Dockerfile b/eclipse-temurin-17-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..a062a6f5
--- /dev/null
+++ b/eclipse-temurin-17-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM eclipse-temurin:17-jdk-alpine
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-17-focal-maven-4/Dockerfile b/eclipse-temurin-17-focal-maven-4/Dockerfile
new file mode 100644
index 00000000..1ced4110
--- /dev/null
+++ b/eclipse-temurin-17-focal-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM eclipse-temurin:17-jdk-focal
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-17-maven-4/Dockerfile b/eclipse-temurin-17-maven-4/Dockerfile
new file mode 100644
index 00000000..041f23dd
--- /dev/null
+++ b/eclipse-temurin-17-maven-4/Dockerfile
@@ -0,0 +1,58 @@
+FROM eclipse-temurin:17-jdk as builder
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ARG SHA=9df71ce42689e1942c9f134b91f93e29be29b521d898c25015dd4edf45249ea4a20000623bbffba7bb585e223e563fa6292241dda7b9034b9822bdfcb29bb269
+ARG BASE_URL=https://downloads.apache.org/maven/maven-4/${MAVEN_VERSION}/binaries
+
+ENV MAVEN_HOME /usr/share/maven
+ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git gnupg dirmngr --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+RUN set -eux; curl -fsSLO --compressed ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
+ && echo "${SHA} *apache-maven-${MAVEN_VERSION}-bin.tar.gz" | sha512sum -c - \
+ && curl -fsSLO --compressed ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz.asc \
+ && export GNUPGHOME="$(mktemp -d)"; \
+ for key in \
+ 6A814B1F869C2BBEAB7CB7271A2A1C94BDE89688 \
+ 29BEA2A645F2D6CED7FB12E02B172E3E156466E8 \
+ 073F7A9345756F3B40CDB99E6C70A3B7599C5736 \
+ ; do \
+ gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys "$key" ; \
+ done; \
+ gpg --batch --verify apache-maven-${MAVEN_VERSION}-bin.tar.gz.asc apache-maven-${MAVEN_VERSION}-bin.tar.gz
+RUN mkdir -p ${MAVEN_HOME} ${MAVEN_HOME}/ref \
+ && tar -xzf apache-maven-${MAVEN_VERSION}-bin.tar.gz -C ${MAVEN_HOME} --strip-components=1 \
+ && ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+# smoke test
+RUN mvn --version
+
+
+FROM eclipse-temurin:17-jdk
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=builder ${MAVEN_HOME} ${MAVEN_HOME}
+COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY settings-docker.xml /usr/share/maven/ref/
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-17-maven-4/mvn-entrypoint.sh b/eclipse-temurin-17-maven-4/mvn-entrypoint.sh
new file mode 100755
index 00000000..9f87dfa2
--- /dev/null
+++ b/eclipse-temurin-17-maven-4/mvn-entrypoint.sh
@@ -0,0 +1,50 @@
+#! /bin/sh -eu
+
+# Copy files from /usr/share/maven/ref into ${MAVEN_CONFIG}
+# So the initial ~/.m2 is set with expected content.
+# Don't override, as this is just a reference setup
+
+copy_reference_files() {
+ local log="$MAVEN_CONFIG/copy_reference_file.log"
+ local ref="/usr/share/maven/ref"
+
+ if mkdir -p "${MAVEN_CONFIG}/repository" && touch "${log}" > /dev/null 2>&1 ; then
+ cd "${ref}"
+ local reflink=""
+ if cp --help 2>&1 | grep -q reflink ; then
+ reflink="--reflink=auto"
+ fi
+ if [ -n "$(find "${MAVEN_CONFIG}/repository" -maxdepth 0 -type d -empty 2>/dev/null)" ] ; then
+ # destination is empty...
+ echo "--- Copying all files to ${MAVEN_CONFIG} at $(date)" >> "${log}"
+ cp -rv ${reflink} . "${MAVEN_CONFIG}" >> "${log}"
+ else
+ # destination is non-empty, copy file-by-file
+ echo "--- Copying individual files to ${MAVEN_CONFIG} at $(date)" >> "${log}"
+ find . -type f -exec sh -eu -c '
+ log="${1}"
+ shift
+ reflink="${1}"
+ shift
+ for f in "$@" ; do
+ if [ ! -e "${MAVEN_CONFIG}/${f}" ] || [ -e "${f}.override" ] ; then
+ mkdir -p "${MAVEN_CONFIG}/$(dirname "${f}")"
+ cp -rv ${reflink} "${f}" "${MAVEN_CONFIG}/${f}" >> "${log}"
+ fi
+ done
+ ' _ "${log}" "${reflink}" {} +
+ fi
+ echo >> "${log}"
+ else
+ echo "Can not write to ${log}. Wrong volume permissions? Carrying on ..."
+ fi
+}
+
+owd="$(pwd)"
+copy_reference_files
+unset MAVEN_CONFIG
+
+cd "${owd}"
+unset owd
+
+exec "$@"
diff --git a/eclipse-temurin-17-maven-4/settings-docker.xml b/eclipse-temurin-17-maven-4/settings-docker.xml
new file mode 100644
index 00000000..586c587c
--- /dev/null
+++ b/eclipse-temurin-17-maven-4/settings-docker.xml
@@ -0,0 +1,6 @@
+
+ /usr/share/maven/ref/repository
+
diff --git a/eclipse-temurin-21-alpine-maven-4/Dockerfile b/eclipse-temurin-21-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..7fa4493e
--- /dev/null
+++ b/eclipse-temurin-21-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM eclipse-temurin:21-jdk-alpine
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-21-jammy-maven-4/Dockerfile b/eclipse-temurin-21-jammy-maven-4/Dockerfile
new file mode 100644
index 00000000..2bce4a25
--- /dev/null
+++ b/eclipse-temurin-21-jammy-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM eclipse-temurin:21-jdk-jammy
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-21-maven-4/Dockerfile b/eclipse-temurin-21-maven-4/Dockerfile
new file mode 100644
index 00000000..95b2fca4
--- /dev/null
+++ b/eclipse-temurin-21-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM eclipse-temurin:21-jdk
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-22-alpine-maven-4/Dockerfile b/eclipse-temurin-22-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..44ab10ea
--- /dev/null
+++ b/eclipse-temurin-22-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM eclipse-temurin:22-jdk-alpine
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-22-jammy-maven-4/Dockerfile b/eclipse-temurin-22-jammy-maven-4/Dockerfile
new file mode 100644
index 00000000..f56940c8
--- /dev/null
+++ b/eclipse-temurin-22-jammy-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM eclipse-temurin:22-jdk-jammy
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/eclipse-temurin-22-maven-4/Dockerfile b/eclipse-temurin-22-maven-4/Dockerfile
new file mode 100644
index 00000000..1c2e27a1
--- /dev/null
+++ b/eclipse-temurin-22-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM eclipse-temurin:22-jdk
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh
index 02c2382e..6b4ef6c6 100755
--- a/generate-stackbrew-library.sh
+++ b/generate-stackbrew-library.sh
@@ -88,6 +88,11 @@ for version in "${all_dirs[@]}"; do
fi
done
+ # ignore maven-4 beta images
+ if [[ "$version" == *-maven-4 ]]; then
+ continue
+ fi
+
branch=main
mapfile -t versionAliases < <(version-aliases "$version" "$branch")
generate-version "$version" "$branch" "${versionAliases[@]}"
diff --git a/graalvm-community-17-maven-4/Dockerfile b/graalvm-community-17-maven-4/Dockerfile
new file mode 100644
index 00000000..5c90accc
--- /dev/null
+++ b/graalvm-community-17-maven-4/Dockerfile
@@ -0,0 +1,23 @@
+FROM ghcr.io/graalvm/graalvm-community:17
+
+RUN microdnf --refresh -y install findutils openssh-clients
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/graalvm-community-21-maven-4/Dockerfile b/graalvm-community-21-maven-4/Dockerfile
new file mode 100644
index 00000000..cd515006
--- /dev/null
+++ b/graalvm-community-21-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM ghcr.io/graalvm/graalvm-community:21
+
+RUN microdnf --refresh -y install findutils openssh-clients
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/ibm-semeru-17-focal-maven-4/Dockerfile b/ibm-semeru-17-focal-maven-4/Dockerfile
new file mode 100644
index 00000000..feb28844
--- /dev/null
+++ b/ibm-semeru-17-focal-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM ibm-semeru-runtimes:open-17-jdk-focal
+
+RUN apt-get update \
+ && apt-get install -y git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/ibm-semeru-21-jammy-maven-4/Dockerfile b/ibm-semeru-21-jammy-maven-4/Dockerfile
new file mode 100644
index 00000000..a0e95012
--- /dev/null
+++ b/ibm-semeru-21-jammy-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM ibm-semeru-runtimes:open-21-jdk-jammy
+
+RUN apt-get update \
+ && apt-get install -y git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/libericaopenjdk-17-alpine-maven-4/Dockerfile b/libericaopenjdk-17-alpine-maven-4/Dockerfile
new file mode 100644
index 00000000..4bbdccfc
--- /dev/null
+++ b/libericaopenjdk-17-alpine-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM bellsoft/liberica-openjdk-alpine:17
+
+RUN apk add --no-cache bash procps curl tar openssh-client
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/libericaopenjdk-17-debian-maven-4/Dockerfile b/libericaopenjdk-17-debian-maven-4/Dockerfile
new file mode 100644
index 00000000..1ef996bb
--- /dev/null
+++ b/libericaopenjdk-17-debian-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM bellsoft/liberica-openjdk-debian:17
+
+RUN apt-get update \
+ && apt-get install -y openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/microsoft-openjdk-17-ubuntu-maven-4/Dockerfile b/microsoft-openjdk-17-ubuntu-maven-4/Dockerfile
new file mode 100644
index 00000000..f7c6bf44
--- /dev/null
+++ b/microsoft-openjdk-17-ubuntu-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/microsoft-openjdk-21-ubuntu-maven-4/Dockerfile b/microsoft-openjdk-21-ubuntu-maven-4/Dockerfile
new file mode 100644
index 00000000..9a5cc7ae
--- /dev/null
+++ b/microsoft-openjdk-21-ubuntu-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM mcr.microsoft.com/openjdk/jdk:21-ubuntu
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/oracle-graalvm-17-maven-4/Dockerfile b/oracle-graalvm-17-maven-4/Dockerfile
new file mode 100644
index 00000000..319c2e5d
--- /dev/null
+++ b/oracle-graalvm-17-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM container-registry.oracle.com/graalvm/native-image:17
+
+RUN microdnf --refresh -y install findutils openssh-clients
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/oracle-graalvm-21-maven-4/Dockerfile b/oracle-graalvm-21-maven-4/Dockerfile
new file mode 100644
index 00000000..ca3ca501
--- /dev/null
+++ b/oracle-graalvm-21-maven-4/Dockerfile
@@ -0,0 +1,24 @@
+FROM container-registry.oracle.com/graalvm/native-image:21
+
+RUN microdnf --refresh -y install findutils openssh-clients
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/publish.sh b/publish.sh
index e7d89920..8a7dffd9 100755
--- a/publish.sh
+++ b/publish.sh
@@ -25,11 +25,15 @@ for dir in "${all_dirs[@]}"; do
fi
else
from=$from_linux
- if [[ "$dir" != "$from" ]]; then
+ if [[ "$dir" != "$from"* ]]; then
# remove everything after the 'common for all images' line
sed "/^${pattern}$/q" "$dir/Dockerfile" | sponge "$dir/Dockerfile"
# copy from the main Dockerfile template the common lines
- tail +2 Dockerfile-template >>"$dir/Dockerfile"
+ if [[ "$dir" == *"maven-4"* ]]; then
+ tail +2 Dockerfile-template-maven-4 >>"$dir/Dockerfile"
+ else
+ tail +2 Dockerfile-template >>"$dir/Dockerfile"
+ fi
fi
fi
done
diff --git a/sapmachine-17-maven-4/Dockerfile b/sapmachine-17-maven-4/Dockerfile
new file mode 100644
index 00000000..12531015
--- /dev/null
+++ b/sapmachine-17-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM sapmachine:17
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/sapmachine-21-maven-4/Dockerfile b/sapmachine-21-maven-4/Dockerfile
new file mode 100644
index 00000000..51d2cc72
--- /dev/null
+++ b/sapmachine-21-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM sapmachine:21
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/sapmachine-22-maven-4/Dockerfile b/sapmachine-22-maven-4/Dockerfile
new file mode 100644
index 00000000..d53f90d1
--- /dev/null
+++ b/sapmachine-22-maven-4/Dockerfile
@@ -0,0 +1,26 @@
+FROM sapmachine:22
+
+RUN apt-get update \
+ && apt-get install -y ca-certificates curl git openssh-client --no-install-recommends \
+ && rm -rf /var/lib/apt/lists/*
+
+# common for all images
+LABEL org.opencontainers.image.title="Apache Maven"
+LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven
+LABEL org.opencontainers.image.description="Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information."
+
+ENV MAVEN_HOME=/usr/share/maven
+
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 ${MAVEN_HOME} ${MAVEN_HOME}
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
+COPY --from=maven:4.0.0-beta-3-eclipse-temurin-17 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml
+
+RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn
+
+ARG MAVEN_VERSION=4.0.0-beta-3
+ARG USER_HOME_DIR="/root"
+ENV MAVEN_CONFIG="$USER_HOME_DIR/.m2"
+
+ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
+CMD ["mvn"]
diff --git a/tests/tests.bats b/tests/tests.bats
index 4a0e7826..7360390f 100644
--- a/tests/tests.bats
+++ b/tests/tests.bats
@@ -14,8 +14,13 @@ base_image=eclipse-temurin-17
@test "$SUT_TAG build base $base_image image" {
if [ "$SUT_TAG" != "$base_image" ]; then
- cd $BATS_TEST_DIRNAME/../$base_image
+ base_dir=$base_image
+ if [[ "$SUT_TAG" == *"maven-4" ]]; then
+ base_dir="${base_dir}-maven-4"
+ fi
+ cd $BATS_TEST_DIRNAME/../$base_dir
base_tag=$(grep -m 1 -o 'maven:[a-z0-9\.-]*' $BATS_TEST_DIRNAME/../$SUT_TAG/Dockerfile)
+ echo $base_tag
docker build --pull -t $base_tag .
fi
}
@@ -80,7 +85,7 @@ base_image=eclipse-temurin-17
@test "$SUT_TAG git is installed" {
if ! (
- [[ "$SUT_TAG" == *"-alpine" ]] ||
+ [[ "$SUT_TAG" == *"-alpine"* ]] ||
[[ "$SUT_TAG" == "amazoncorretto-"* ]] ||
[[ "$SUT_TAG" == "azulzulu-"* ]] ||
[[ "$SUT_TAG" == "ibmjava-"* ]] ||
@@ -95,7 +100,7 @@ base_image=eclipse-temurin-17
}
@test "$SUT_TAG curl is installed" {
- if [[ "$SUT_TAG" == amazoncorretto-*-debian ]] ||
+ if [[ "$SUT_TAG" == amazoncorretto-*-debian* ]] ||
[[ "$SUT_TAG" == amazoncorretto-*-alpine ]] ||
[[ "$SUT_TAG" == azulzulu-*-debian ]]; then
run -127 docker run --rm $SUT_IMAGE:$SUT_TAG curl --version
@@ -108,7 +113,8 @@ base_image=eclipse-temurin-17
@test "$SUT_TAG tar is installed" {
if ! (
[[ "$SUT_TAG" == "amazoncorretto-23" ]] ||
- [[ "$SUT_TAG" == "amazoncorretto-23-al2023" ]]
+ [[ "$SUT_TAG" == "amazoncorretto-23-al2023" ]] ||
+ [[ "$SUT_TAG" == amazoncorretto-*-maven-4 ]]
); then
run docker run --rm $SUT_IMAGE:$SUT_TAG tar --version
assert_success
@@ -126,7 +132,8 @@ base_image=eclipse-temurin-17
if ! (
[[ "$SUT_TAG" == *"oracle"* ]] ||
[[ "$SUT_TAG" == "amazoncorretto-23" ]] ||
- [[ "$SUT_TAG" == "amazoncorretto-23-al2023" ]]
+ [[ "$SUT_TAG" == "amazoncorretto-23-al2023" ]] ||
+ [[ "$SUT_TAG" == amazoncorretto-*-maven-4 ]]
); then
run docker run --rm $SUT_IMAGE:$SUT_TAG which sh
[ $status -eq 0 ]
@@ -144,9 +151,9 @@ base_image=eclipse-temurin-17
run docker run --rm $SUT_IMAGE:$SUT_TAG sh -c "ps --help list | grep -- ' -p'"
if ! (
[[ "$SUT_TAG" == "amazoncorretto-"* ]] ||
- [[ "$SUT_TAG" == libericaopenjdk-*-debian ]] ||
+ [[ "$SUT_TAG" == libericaopenjdk-*-debian* ]] ||
[[ "$SUT_TAG" == *"graalvm"* ]] ||
- [[ "$SUT_TAG" == azulzulu-*-debian ]]
+ [[ "$SUT_TAG" == azulzulu-*-debian* ]]
); then
[ $status -eq 0 ]
@@ -160,7 +167,8 @@ base_image=eclipse-temurin-17
if (
[[ "$SUT_TAG" == amazoncorretto-? ]] ||
[[ "$SUT_TAG" == amazoncorretto-?? ]] ||
- [[ "$SUT_TAG" == amazoncorretto-*-al2023 ]] ||
+ [[ "$SUT_TAG" == amazoncorretto-??-maven-4 ]] ||
+ [[ "$SUT_TAG" == amazoncorretto-*-al2023* ]] ||
[[ "$SUT_TAG" == eclipse-temurin-* ]] ||
[[ "$SUT_TAG" == *"graalvm"* ]]
); then