From a7ab423356818ab270d0e0fe349e76b88d8a7486 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 16:36:28 +0000 Subject: [PATCH 01/16] Bump anchore/scan-action from 6 to 7 in /.github/workflows Bumps [anchore/scan-action](https://github.com/anchore/scan-action) from 6 to 7. - [Release notes](https://github.com/anchore/scan-action/releases) - [Changelog](https://github.com/anchore/scan-action/blob/main/RELEASE.md) - [Commits](https://github.com/anchore/scan-action/compare/v6...v7) --- updated-dependencies: - dependency-name: anchore/scan-action dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/scans.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 2d5cf6a..903b6ee 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -53,7 +53,7 @@ jobs: tags: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAG }} - name: Scan generated packages - uses: anchore/scan-action@v6 + uses: anchore/scan-action@v7 id: securityscan with: image: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAG }} From 07d785357651be6ce9c075ae9b1fc721eebb5838 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 16:46:56 +0000 Subject: [PATCH 02/16] Bump github/codeql-action from 3 to 4 in /.github/workflows Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/scans.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 2d5cf6a..e745a79 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -63,7 +63,7 @@ jobs: only-fixed: true - name: Upload Anchore Report - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: ${{ steps.securityscan.outputs.sarif }} category: "BoxLang-Runtime-${{ github.env.BRANCH }}" From bd499b685990ba04016f23af542f747fe8b4088e Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Fri, 14 Nov 2025 17:33:45 -0500 Subject: [PATCH 03/16] update image version --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 691f925..80d89cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -135,7 +135,7 @@ jobs: DOCKER_IMAGE: ortussolutions/commandbox BUILD_IMAGE_TAG: ${{ matrix.BUILD_IMAGE_TAG }} COMMANDBOX_VERSION: 6.2.1 - IMAGE_VERSION: 3.13.5 + IMAGE_VERSION: 3.13.7 run: | # Tag Builds if [[ $GITHUB_REF == refs/tags/* ]]; then From 76d062a772bd48e7b456d2f44ab4386307cd35ba Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Fri, 14 Nov 2025 17:45:24 -0500 Subject: [PATCH 04/16] rename all `ubi9` folders to redhat, change image tags to `rhel`, add Lucee 7 images and bump 6 version, remove Adobe 2021 images --- .github/workflows/pull-request.yml | 30 ++++---- .github/workflows/release.yml | 64 ++++++++--------- README.md | 34 ++++----- .../{ubi9 => redhat}/install-dependencies.sh | 0 .../util/{ubi9 => redhat}/install-filebeat.sh | 0 builds/alpine/Adobe2018.Dockerfile | 13 ---- builds/alpine/Adobe2021.Dockerfile | 11 --- builds/alpine/Lucee6.Dockerfile | 4 +- builds/alpine/Lucee7.Dockerfile | 12 ++++ ...ubi9.JRE17.Dockerfile => JDK25.Dockerfile} | 12 ++-- builds/base/JRE25.Dockerfile | 68 ++++++++++++++++++ .../base/{ubi9.Dockerfile => rhel.Dockerfile} | 4 +- ...JDK17.Dockerfile => rhel.JDK11.Dockerfile} | 4 +- ...JDK21.Dockerfile => rhel.JDK17.Dockerfile} | 4 +- ...JDK11.Dockerfile => rhel.JDK21.Dockerfile} | 4 +- builds/base/rhel.JRE17.Dockerfile | 72 +++++++++++++++++++ builds/debian/Adobe11.Dockerfile | 11 --- builds/debian/Adobe2016.Dockerfile | 11 --- builds/debian/Adobe2018.Dockerfile | 13 ---- builds/debian/Adobe2021.Dockerfile | 11 --- builds/debian/Lucee6.Dockerfile | 4 +- builds/debian/Lucee7.Dockerfile | 12 ++++ builds/{ubi9 => redhat}/Adobe2023.Dockerfile | 2 +- builds/{ubi9 => redhat}/Adobe2025.Dockerfile | 2 +- builds/{ubi9 => redhat}/Base.Dockerfile | 2 +- builds/{ubi9 => redhat}/BoxLang.Dockerfile | 2 +- builds/{ubi9 => redhat}/Lucee5.Dockerfile | 2 +- .../{ubi9 => redhat}/Lucee5Light.Dockerfile | 2 +- builds/{ubi9 => redhat}/Lucee6.Dockerfile | 4 +- builds/redhat/Lucee7.Dockerfile | 12 ++++ builds/{ubi9 => redhat}/LuceeLight.Dockerfile | 2 +- builds/ubi9/Adobe2018.Dockerfile | 13 ---- builds/ubi9/Adobe2021.Dockerfile | 11 --- changelog.md | 15 +++- 34 files changed, 279 insertions(+), 188 deletions(-) rename build/util/{ubi9 => redhat}/install-dependencies.sh (100%) rename build/util/{ubi9 => redhat}/install-filebeat.sh (100%) delete mode 100644 builds/alpine/Adobe2018.Dockerfile delete mode 100644 builds/alpine/Adobe2021.Dockerfile create mode 100644 builds/alpine/Lucee7.Dockerfile rename builds/base/{ubi9.JRE17.Dockerfile => JDK25.Dockerfile} (90%) create mode 100644 builds/base/JRE25.Dockerfile rename builds/base/{ubi9.Dockerfile => rhel.Dockerfile} (95%) rename builds/base/{ubi9.JDK17.Dockerfile => rhel.JDK11.Dockerfile} (95%) rename builds/base/{ubi9.JDK21.Dockerfile => rhel.JDK17.Dockerfile} (95%) rename builds/base/{ubi9.JDK11.Dockerfile => rhel.JDK21.Dockerfile} (95%) create mode 100644 builds/base/rhel.JRE17.Dockerfile delete mode 100644 builds/debian/Adobe11.Dockerfile delete mode 100644 builds/debian/Adobe2016.Dockerfile delete mode 100644 builds/debian/Adobe2018.Dockerfile delete mode 100644 builds/debian/Adobe2021.Dockerfile create mode 100644 builds/debian/Lucee7.Dockerfile rename builds/{ubi9 => redhat}/Adobe2023.Dockerfile (87%) rename builds/{ubi9 => redhat}/Adobe2025.Dockerfile (87%) rename builds/{ubi9 => redhat}/Base.Dockerfile (81%) rename builds/{ubi9 => redhat}/BoxLang.Dockerfile (85%) rename builds/{ubi9 => redhat}/Lucee5.Dockerfile (91%) rename builds/{ubi9 => redhat}/Lucee5Light.Dockerfile (89%) rename builds/{ubi9 => redhat}/Lucee6.Dockerfile (82%) create mode 100644 builds/redhat/Lucee7.Dockerfile rename builds/{ubi9 => redhat}/LuceeLight.Dockerfile (89%) delete mode 100644 builds/ubi9/Adobe2018.Dockerfile delete mode 100644 builds/ubi9/Adobe2021.Dockerfile diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 42f2ce7..5eb71aa 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -39,22 +39,22 @@ jobs: BUILD_IMAGE_TAG: boxlang # ubi9 Builds - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Base.Dockerfile + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile BUILD_IMAGE_TAG: ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Base.Dockerfile - BUILD_IMAGE_TAG: jre11-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/base/ubi9.JDK11.Dockerfile - BUILD_IMAGE_TAG: jdk11-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Lucee5.Dockerfile - BUILD_IMAGE_TAG: lucee5-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/LuceeLight.Dockerfile - BUILD_IMAGE_TAG: lucee-light-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Adobe2018.Dockerfile - BUILD_IMAGE_TAG: adobe2018-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Adobe2021.Dockerfile - BUILD_IMAGE_TAG: adobe2021-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/BoxLang.Dockerfile - BUILD_IMAGE_TAG: boxlang-ubi9 + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile + BUILD_IMAGE_TAG: jre11-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK11.Dockerfile + BUILD_IMAGE_TAG: jdk11-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5.Dockerfile + BUILD_IMAGE_TAG: lucee5-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/LuceeLight.Dockerfile + BUILD_IMAGE_TAG: lucee-light-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2018.Dockerfile + BUILD_IMAGE_TAG: adobe2018-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2021.Dockerfile + BUILD_IMAGE_TAG: adobe2021-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/BoxLang.Dockerfile + BUILD_IMAGE_TAG: boxlang-rhel # Alpine builds # Note: No JDK builders currently support alpine with ARM diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 80d89cb..fbf8eb1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,12 +40,12 @@ jobs: BUILD_IMAGE_TAG: lucee5 - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee6.Dockerfile BUILD_IMAGE_TAG: lucee6 + - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee7.Dockerfile + BUILD_IMAGE_TAG: lucee7 - BUILD_IMAGE_DOCKERFILE: builds/debian/LuceeLight.Dockerfile BUILD_IMAGE_TAG: lucee-light - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5Light.Dockerfile BUILD_IMAGE_TAG: lucee5-light - - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2021.Dockerfile - BUILD_IMAGE_TAG: adobe2021 - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2023.Dockerfile BUILD_IMAGE_TAG: adobe2023 - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2025.Dockerfile @@ -54,34 +54,34 @@ jobs: BUILD_IMAGE_TAG: boxlang # ubi9 Builds - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Base.Dockerfile + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile BUILD_IMAGE_TAG: ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Base.Dockerfile - BUILD_IMAGE_TAG: jre11-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/base/ubi9.JDK11.Dockerfile - BUILD_IMAGE_TAG: jdk11-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/base/ubi9.JDK17.Dockerfile - BUILD_IMAGE_TAG: jdk17-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/base/ubi9.JDK21.Dockerfile - BUILD_IMAGE_TAG: jdk21-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/base/ubi9.JRE17.Dockerfile - BUILD_IMAGE_TAG: jre17-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Lucee5.Dockerfile - BUILD_IMAGE_TAG: lucee5-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Lucee6.Dockerfile - BUILD_IMAGE_TAG: lucee6-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/LuceeLight.Dockerfile - BUILD_IMAGE_TAG: lucee-light-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Lucee5Light.Dockerfile - BUILD_IMAGE_TAG: lucee5-light-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Adobe2021.Dockerfile - BUILD_IMAGE_TAG: adobe2021-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Adobe2023.Dockerfile - BUILD_IMAGE_TAG: adobe2023-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/Adobe2025.Dockerfile - BUILD_IMAGE_TAG: adobe2025-ubi9 - - BUILD_IMAGE_DOCKERFILE: builds/ubi9/BoxLang.Dockerfile - BUILD_IMAGE_TAG: boxlang-ubi9 + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile + BUILD_IMAGE_TAG: jre11-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK11.Dockerfile + BUILD_IMAGE_TAG: jdk11-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK17.Dockerfile + BUILD_IMAGE_TAG: jdk17-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK21.Dockerfile + BUILD_IMAGE_TAG: jdk21-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE17.Dockerfile + BUILD_IMAGE_TAG: jre17-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5.Dockerfile + BUILD_IMAGE_TAG: lucee5-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee6.Dockerfile + BUILD_IMAGE_TAG: lucee6-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee7.Dockerfile + BUILD_IMAGE_TAG: lucee7-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/LuceeLight.Dockerfile + BUILD_IMAGE_TAG: lucee-light-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5Light.Dockerfile + BUILD_IMAGE_TAG: lucee5-light-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2023.Dockerfile + BUILD_IMAGE_TAG: adobe2023-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2025.Dockerfile + BUILD_IMAGE_TAG: adobe2025-rhel + - BUILD_IMAGE_DOCKERFILE: builds/redhat/BoxLang.Dockerfile + BUILD_IMAGE_TAG: boxlang-rhel # Alpine builds # Note: No JDK builders currently support alpine with ARM @@ -103,12 +103,12 @@ jobs: BUILD_IMAGE_TAG: lucee5-alpine - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee6.Dockerfile BUILD_IMAGE_TAG: lucee6-alpine + - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee7.Dockerfile + BUILD_IMAGE_TAG: lucee7-alpine - BUILD_IMAGE_DOCKERFILE: builds/alpine/LuceeLight.Dockerfile BUILD_IMAGE_TAG: lucee-light-alpine - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee5Light.Dockerfile BUILD_IMAGE_TAG: lucee5-light-alpine - - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2021.Dockerfile - BUILD_IMAGE_TAG: adobe2021-alpine - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2023.Dockerfile BUILD_IMAGE_TAG: adobe2023-alpine - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2025.Dockerfile @@ -135,7 +135,7 @@ jobs: DOCKER_IMAGE: ortussolutions/commandbox BUILD_IMAGE_TAG: ${{ matrix.BUILD_IMAGE_TAG }} COMMANDBOX_VERSION: 6.2.1 - IMAGE_VERSION: 3.13.7 + IMAGE_VERSION: 3.14.8 run: | # Tag Builds if [[ $GITHUB_REF == refs/tags/* ]]; then diff --git a/README.md b/README.md index 9fbb773..c8a4fe3 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ All images are published to [Docker Hub](https://hub.docker.com/r/ortussolutions - **Multi-Engine Support**: Run BoxLang Applications or CFML engines, including Lucee and Adobe ColdFusion, in a single container. - **Customizable**: Easily configure your server environment using `server.json` or environment variables. - **Pre-Built Engines**: Includes pre-built images with warmed-up engines to reduce startup times. -- **Alpine and UBI9 Variants**: Lightweight Alpine Linux and RHEL Universal Base Image (UBI9) variants for optimized performance and security. +- **Alpine and UBI9 Variants**: Lightweight Alpine Linux and RHEL Universal Base Image (UBI10) variants for optimized performance and security. - **Health Checks**: Built-in health checks to ensure your server is running smoothly. - **Docker Secrets Support**: Use Docker secrets for secure configuration management. - **Environment Variables**: Extensive support for environment variables to customize your server configuration at runtime. @@ -76,7 +76,7 @@ _Note: For references to the specific versions of CommandBox used within image v - `:boxlang` - BoxLang runtime ready (JDK 21) - `:lucee6` - Lucee 6.x warmed up (JDK 11) - `:adobe2025` - Adobe ColdFusion 2025 (JDK 21) -- `:[version]` - Specific tagged version (e.g., `:3.13.4`) +- `:[version]` - Specific tagged version (e.g., `:3.13.8`) - `:[tag]-snapshot` - Development version of tagged variations #### JDK/JRE Variants (Debian) @@ -100,11 +100,11 @@ _Note: For references to the specific versions of CommandBox used within image v #### RHEL Universal Base Image (UBI9) Variants -- `:ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.Dockerfile)) - RHEL UBI9 (JDK 11) -- `:ubi9-jdk11` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.JDK11.Dockerfile)) - UBI9 with JDK 11 -- `:ubi9-jre17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.JRE17.Dockerfile)) - UBI9 with JRE 17 -- `:ubi9-jdk17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.JDK17.Dockerfile)) - UBI9 with JDK 17 -- `:ubi9-jdk21` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.JDK21.Dockerfile)) - UBI9 with JDK 21 +- `:ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/rhel.Dockerfile)) - RHEL UBI9 (JDK 11) +- `:ubi9-jdk11` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/rhel.JDK11.Dockerfile)) - UBI9 with JDK 11 +- `:ubi9-jre17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/rhel.JRE17.Dockerfile)) - UBI9 with JRE 17 +- `:ubi9-jdk17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/rhel.JDK17.Dockerfile)) - UBI9 with JDK 17 +- `:ubi9-jdk21` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/rhel.JDK21.Dockerfile)) - UBI9 with JDK 21 ### Pre-Built Engine Images (Warmed Up) @@ -114,7 +114,7 @@ These images include pre-downloaded and warmed-up engines to significantly reduc - `:boxlang` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/BoxLang.Dockerfile)) - BoxLang on Debian - `:boxlang-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/BoxLang.Dockerfile)) - BoxLang on Alpine -- `:boxlang-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/BoxLang.Dockerfile)) - BoxLang on UBI9 +- `:boxlang-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/BoxLang.Dockerfile)) - BoxLang on UBI9 #### Lucee CFML Engine @@ -135,10 +135,10 @@ These images include pre-downloaded and warmed-up engines to significantly reduc **UBI9-based Lucee Images:** -- `:lucee5-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5.Dockerfile)) - Lucee 5.x on UBI9 -- `:lucee6-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee6.Dockerfile)) - Lucee 6.x on UBI9 -- `:lucee-light-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/LuceeLight.Dockerfile)) - Lucee Light on UBI9 -- `:lucee5-light-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5Light.Dockerfile)) - Lucee 5.x Light on UBI9 +- `:lucee5-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Lucee5.Dockerfile)) - Lucee 5.x on UBI9 +- `:lucee6-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Lucee6.Dockerfile)) - Lucee 6.x on UBI9 +- `:lucee-light-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/LuceeLight.Dockerfile)) - Lucee Light on UBI9 +- `:lucee5-light-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Lucee5Light.Dockerfile)) - Lucee 5.x Light on UBI9 #### Adobe ColdFusion Engine @@ -160,10 +160,10 @@ These images include pre-downloaded and warmed-up engines to significantly reduc **UBI9-based Adobe Images:** -- `:adobe2018-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2018.Dockerfile)) - Adobe ColdFusion 2018 on UBI9 -- `:adobe2021-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2021.Dockerfile)) - Adobe ColdFusion 2021 on UBI9 -- `:adobe2023-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2023.Dockerfile)) - Adobe ColdFusion 2023 on UBI9 -- `:adobe2025-ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2025.Dockerfile)) - Adobe ColdFusion 2025 on UBI9 +- `:adobe2018-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Adobe2018.Dockerfile)) - Adobe ColdFusion 2018 on UBI9 +- `:adobe2021-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Adobe2021.Dockerfile)) - Adobe ColdFusion 2021 on UBI9 +- `:adobe2023-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Adobe2023.Dockerfile)) - Adobe ColdFusion 2023 on UBI9 +- `:adobe2025-rhel` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/redhat/Adobe2025.Dockerfile)) - Adobe ColdFusion 2025 on UBI9 ### Choosing the Right Tag @@ -171,7 +171,7 @@ These images include pre-downloaded and warmed-up engines to significantly reduc - **For CFML Warmed Up Engines**: Use `:lucee6` or `:adobe2025` for the latest engines - **For production**: Use specific engine tags with your preferred base OS - **For smaller images**: Use `-alpine` variants -- **For enterprise/RHEL environments**: Use `-ubi9` variants +- **For enterprise/RHEL environments**: Use `-rhel` variants - **For development**: Use `:snapshot` for bleeding edge features _**Note**: The `:latest` tag currently uses OpenJDK11, as do most pre-built engine images. BoxLang and Adobe2025 images use JDK21. If you require specific JDK versions, use the appropriate JDK variant tags._ diff --git a/build/util/ubi9/install-dependencies.sh b/build/util/redhat/install-dependencies.sh similarity index 100% rename from build/util/ubi9/install-dependencies.sh rename to build/util/redhat/install-dependencies.sh diff --git a/build/util/ubi9/install-filebeat.sh b/build/util/redhat/install-filebeat.sh similarity index 100% rename from build/util/ubi9/install-filebeat.sh rename to build/util/redhat/install-filebeat.sh diff --git a/builds/alpine/Adobe2018.Dockerfile b/builds/alpine/Adobe2018.Dockerfile deleted file mode 100644 index a5c8538..0000000 --- a/builds/alpine/Adobe2018.Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2018.0.19+330149 - -ENV JAVA_TOOL_OPTIONS '-Djdk.serialFilter=!org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**' - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/alpine/Adobe2021.Dockerfile b/builds/alpine/Adobe2021.Dockerfile deleted file mode 100644 index 3e32069..0000000 --- a/builds/alpine/Adobe2021.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2021.0.22+330451 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/alpine/Lucee6.Dockerfile b/builds/alpine/Lucee6.Dockerfile index 2a1f143..d375ed3 100644 --- a/builds/alpine/Lucee6.Dockerfile +++ b/builds/alpine/Lucee6.Dockerfile @@ -1,10 +1,10 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.Dockerfile +INCLUDE+ builds/base/Alpine.JRE17.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE lucee@6.2.1+122 +ENV BOX_SERVER_APP_CFENGINE lucee@6.2.3+35 ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 diff --git a/builds/alpine/Lucee7.Dockerfile b/builds/alpine/Lucee7.Dockerfile new file mode 100644 index 0000000..eb93ae2 --- /dev/null +++ b/builds/alpine/Lucee7.Dockerfile @@ -0,0 +1,12 @@ +# syntax = edrevo/dockerfile-plus +INCLUDE+ builds/base/Alpine.JDK21.Dockerfile + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +ENV BOX_SERVER_APP_CFENGINE lucee@7.0.0+395 + +ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 + +# WARM UP THE SERVER - we skip the declaration so that the default installed Lucee server will be used +RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/base/ubi9.JRE17.Dockerfile b/builds/base/JDK25.Dockerfile similarity index 90% rename from builds/base/ubi9.JRE17.Dockerfile rename to builds/base/JDK25.Dockerfile index 9caab4c..0ee7fec 100644 --- a/builds/base/ubi9.JRE17.Dockerfile +++ b/builds/base/JDK25.Dockerfile @@ -1,5 +1,4 @@ -FROM eclipse-temurin:17-jre-ubi9-minimal - +FROM eclipse-temurin:25-jdk-noble ARG COMMANDBOX_VERSION LABEL maintainer "Jon Clausen " @@ -11,8 +10,6 @@ ENV LANG C.UTF-8 # Since alpine runs as a single user, we need to create a "root" direcotry ENV HOME /root -RUN microdnf install -y shadow-utils util-linux - # Add a working group which any dynamic users can be assigned ENV WORKGROUP runwar RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root @@ -46,9 +43,8 @@ RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR # Basic Dependencies RUN rm -rf $BUILD_DIR/util/alpine -RUN rm -rf $BUILD_DIR/util/debian - -RUN ${BUILD_DIR}/util/ubi9/install-dependencies.sh +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN ${BUILD_DIR}/util/debian/install-dependencies.sh # Commandbox Installation RUN $BUILD_DIR/util/install-commandbox.sh @@ -56,11 +52,11 @@ RUN $BUILD_DIR/util/install-commandbox.sh # Add our custom classes added in the previous step to the java classpath ENV CLASSPATH="$JAVA_HOME/classes" + # Default Port Environment Variables ENV PORT 8080 ENV SSL_PORT 8443 - # Healthcheck environment variables ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" diff --git a/builds/base/JRE25.Dockerfile b/builds/base/JRE25.Dockerfile new file mode 100644 index 0000000..5672eb4 --- /dev/null +++ b/builds/base/JRE25.Dockerfile @@ -0,0 +1,68 @@ +FROM eclipse-temurin:25-jre-noble +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN ${BUILD_DIR}/util/debian/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/ubi9.Dockerfile b/builds/base/rhel.Dockerfile similarity index 95% rename from builds/base/ubi9.Dockerfile rename to builds/base/rhel.Dockerfile index 94859b8..3b12107 100644 --- a/builds/base/ubi9.Dockerfile +++ b/builds/base/rhel.Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:11-jre-ubi9-minimal +FROM eclipse-temurin:11-jre-ubi10-minimal ARG COMMANDBOX_VERSION @@ -48,7 +48,7 @@ RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR RUN rm -rf $BUILD_DIR/util/alpine RUN rm -rf $BUILD_DIR/util/debian -RUN ${BUILD_DIR}/util/ubi9/install-dependencies.sh +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh # Commandbox Installation RUN $BUILD_DIR/util/install-commandbox.sh diff --git a/builds/base/ubi9.JDK17.Dockerfile b/builds/base/rhel.JDK11.Dockerfile similarity index 95% rename from builds/base/ubi9.JDK17.Dockerfile rename to builds/base/rhel.JDK11.Dockerfile index f1c4142..68436d9 100644 --- a/builds/base/ubi9.JDK17.Dockerfile +++ b/builds/base/rhel.JDK11.Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:17-jdk-ubi9-minimal +FROM eclipse-temurin:11-jdk-ubi10-minimal ARG COMMANDBOX_VERSION @@ -48,7 +48,7 @@ RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR RUN rm -rf $BUILD_DIR/util/alpine RUN rm -rf $BUILD_DIR/util/debian -RUN ${BUILD_DIR}/util/ubi9/install-dependencies.sh +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh # Commandbox Installation RUN $BUILD_DIR/util/install-commandbox.sh diff --git a/builds/base/ubi9.JDK21.Dockerfile b/builds/base/rhel.JDK17.Dockerfile similarity index 95% rename from builds/base/ubi9.JDK21.Dockerfile rename to builds/base/rhel.JDK17.Dockerfile index 41c8a36..4aed2a3 100644 --- a/builds/base/ubi9.JDK21.Dockerfile +++ b/builds/base/rhel.JDK17.Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jdk-ubi9-minimal +FROM eclipse-temurin:17-jdk-ubi10-minimal ARG COMMANDBOX_VERSION @@ -48,7 +48,7 @@ RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR RUN rm -rf $BUILD_DIR/util/alpine RUN rm -rf $BUILD_DIR/util/debian -RUN ${BUILD_DIR}/util/ubi9/install-dependencies.sh +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh # Commandbox Installation RUN $BUILD_DIR/util/install-commandbox.sh diff --git a/builds/base/ubi9.JDK11.Dockerfile b/builds/base/rhel.JDK21.Dockerfile similarity index 95% rename from builds/base/ubi9.JDK11.Dockerfile rename to builds/base/rhel.JDK21.Dockerfile index 8701000..87b5110 100644 --- a/builds/base/ubi9.JDK11.Dockerfile +++ b/builds/base/rhel.JDK21.Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:11-jdk-ubi9-minimal +FROM eclipse-temurin:21-jdk-ubi10-minimal ARG COMMANDBOX_VERSION @@ -48,7 +48,7 @@ RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR RUN rm -rf $BUILD_DIR/util/alpine RUN rm -rf $BUILD_DIR/util/debian -RUN ${BUILD_DIR}/util/ubi9/install-dependencies.sh +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh # Commandbox Installation RUN $BUILD_DIR/util/install-commandbox.sh diff --git a/builds/base/rhel.JRE17.Dockerfile b/builds/base/rhel.JRE17.Dockerfile new file mode 100644 index 0000000..ff8caad --- /dev/null +++ b/builds/base/rhel.JRE17.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:17-jre-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/debian/Adobe11.Dockerfile b/builds/debian/Adobe11.Dockerfile deleted file mode 100644 index 701c521..0000000 --- a/builds/debian/Adobe11.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK8.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@11.0.19+314546 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2016.Dockerfile b/builds/debian/Adobe2016.Dockerfile deleted file mode 100644 index 0e38f1c..0000000 --- a/builds/debian/Adobe2016.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK8.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2016.0.17+325979 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2018.Dockerfile b/builds/debian/Adobe2018.Dockerfile deleted file mode 100644 index 511dc5e..0000000 --- a/builds/debian/Adobe2018.Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2018.0.19+330149 - -ENV JAVA_TOOL_OPTIONS '-Djdk.serialFilter=!org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**' - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2021.Dockerfile b/builds/debian/Adobe2021.Dockerfile deleted file mode 100644 index 8578a8d..0000000 --- a/builds/debian/Adobe2021.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2021.0.22+330451 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Lucee6.Dockerfile b/builds/debian/Lucee6.Dockerfile index 077e0d8..7d92cba 100644 --- a/builds/debian/Lucee6.Dockerfile +++ b/builds/debian/Lucee6.Dockerfile @@ -1,10 +1,10 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Dockerfile +INCLUDE+ builds/base/JRE17.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE lucee@6.2.1+122 +ENV BOX_SERVER_APP_CFENGINE lucee@6.2.3+35 ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 diff --git a/builds/debian/Lucee7.Dockerfile b/builds/debian/Lucee7.Dockerfile new file mode 100644 index 0000000..690911d --- /dev/null +++ b/builds/debian/Lucee7.Dockerfile @@ -0,0 +1,12 @@ +# syntax = edrevo/dockerfile-plus +INCLUDE+ builds/base/JRE25.Dockerfile + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +ENV BOX_SERVER_APP_CFENGINE lucee@7.0.0+395 + +ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 + +# WARM UP THE SERVER - we skip the declaration so that the default installed Lucee server will be used +RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/ubi9/Adobe2023.Dockerfile b/builds/redhat/Adobe2023.Dockerfile similarity index 87% rename from builds/ubi9/Adobe2023.Dockerfile rename to builds/redhat/Adobe2023.Dockerfile index e9ca8a9..96324e9 100644 --- a/builds/ubi9/Adobe2023.Dockerfile +++ b/builds/redhat/Adobe2023.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.JDK17.Dockerfile +INCLUDE+ builds/base/rhel.JDK17.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Adobe2025.Dockerfile b/builds/redhat/Adobe2025.Dockerfile similarity index 87% rename from builds/ubi9/Adobe2025.Dockerfile rename to builds/redhat/Adobe2025.Dockerfile index 3ad79df..9cd7fcc 100644 --- a/builds/ubi9/Adobe2025.Dockerfile +++ b/builds/redhat/Adobe2025.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.JDK17.Dockerfile +INCLUDE+ builds/base/rhel.JDK17.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Base.Dockerfile b/builds/redhat/Base.Dockerfile similarity index 81% rename from builds/ubi9/Base.Dockerfile rename to builds/redhat/Base.Dockerfile index f73ba15..035f7cb 100644 --- a/builds/ubi9/Base.Dockerfile +++ b/builds/redhat/Base.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.Dockerfile +INCLUDE+ builds/base/rhel.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/ubi9/BoxLang.Dockerfile b/builds/redhat/BoxLang.Dockerfile similarity index 85% rename from builds/ubi9/BoxLang.Dockerfile rename to builds/redhat/BoxLang.Dockerfile index 8c05871..e2be059 100644 --- a/builds/ubi9/BoxLang.Dockerfile +++ b/builds/redhat/BoxLang.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.JDK21.Dockerfile +INCLUDE+ builds/base/rhel.JDK21.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Lucee5.Dockerfile b/builds/redhat/Lucee5.Dockerfile similarity index 91% rename from builds/ubi9/Lucee5.Dockerfile rename to builds/redhat/Lucee5.Dockerfile index 4cc4614..ea3c1c7 100644 --- a/builds/ubi9/Lucee5.Dockerfile +++ b/builds/redhat/Lucee5.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.Dockerfile +INCLUDE+ builds/base/rhel.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Lucee5Light.Dockerfile b/builds/redhat/Lucee5Light.Dockerfile similarity index 89% rename from builds/ubi9/Lucee5Light.Dockerfile rename to builds/redhat/Lucee5Light.Dockerfile index 487e657..95265cf 100644 --- a/builds/ubi9/Lucee5Light.Dockerfile +++ b/builds/redhat/Lucee5Light.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.Dockerfile +INCLUDE+ builds/base/rhel.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Lucee6.Dockerfile b/builds/redhat/Lucee6.Dockerfile similarity index 82% rename from builds/ubi9/Lucee6.Dockerfile rename to builds/redhat/Lucee6.Dockerfile index 0f61941..d4aa62c 100644 --- a/builds/ubi9/Lucee6.Dockerfile +++ b/builds/redhat/Lucee6.Dockerfile @@ -1,10 +1,10 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.Dockerfile +INCLUDE+ builds/base/rhel.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE lucee@6.2.1+122 +ENV BOX_SERVER_APP_CFENGINE lucee@6.2.3+35 ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 diff --git a/builds/redhat/Lucee7.Dockerfile b/builds/redhat/Lucee7.Dockerfile new file mode 100644 index 0000000..e3375ec --- /dev/null +++ b/builds/redhat/Lucee7.Dockerfile @@ -0,0 +1,12 @@ +# syntax = edrevo/dockerfile-plus +INCLUDE+ builds/base/rhel.JDK21.Dockerfile + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +ENV BOX_SERVER_APP_CFENGINE lucee@7.0.0+395 + +ENV LUCEE_EXTENSIONS D062D72F-F8A2-46F0-8CBC91325B2F067B;version=6.5.2 + +# WARM UP THE SERVER - we skip the declaration so that the default installed Lucee server will be used +RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/ubi9/LuceeLight.Dockerfile b/builds/redhat/LuceeLight.Dockerfile similarity index 89% rename from builds/ubi9/LuceeLight.Dockerfile rename to builds/redhat/LuceeLight.Dockerfile index efac8f3..a65fb33 100644 --- a/builds/ubi9/LuceeLight.Dockerfile +++ b/builds/redhat/LuceeLight.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.Dockerfile +INCLUDE+ builds/base/rhel.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/ubi9/Adobe2018.Dockerfile b/builds/ubi9/Adobe2018.Dockerfile deleted file mode 100644 index 778e487..0000000 --- a/builds/ubi9/Adobe2018.Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2018.0.19+330149 - -ENV JAVA_TOOL_OPTIONS '-Djdk.serialFilter=!org.mozilla.**;!com.sun.syndication.**;!org.apache.commons.beanutils.**;!org.jgroups.**;!com.sun.rowset.**' - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/ubi9/Adobe2021.Dockerfile b/builds/ubi9/Adobe2021.Dockerfile deleted file mode 100644 index 1978a1b..0000000 --- a/builds/ubi9/Adobe2021.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/ubi9.JDK11.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2021.0.22+330451 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/changelog.md b/changelog.md index c7dce6f..367deb4 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ---- +## [Unreleased] + +### Changed + +- RedHat UBI images bumped to ubi-10 +- `-ubi9` tags no changed to `-rhel` for clarity on OS. Old `-ubi9` tags will no longer will be created +- Lucee 6 images bumped to `v6.2.3+35` +- Lucee 7 images added + ## [6.2.1/3.13.7] @@ -16,6 +25,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Adobe Coldfusion 2023 images bumped to `2023.0.16+330828` - Adobe Coldfusion 2021 images bumped to `2021.0.20+330407` - Boxlang images bump to `v1.7.0` +- JDK/JRE 11 images bumped to version `11.0.29_7` +- JDK/JRE 17 images bumped to version `17.0.17_10` +- JDK/JRE 21 images bumped to version `21.0.9_10` +- JDK/JRE 24 images bumped to version `24.0.2_12` ## [6.2.1/3.13.6] - 2025-08-06 @@ -354,7 +367,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added [RHEL ubi9](https://catalog.redhat.com/software/containers/ubi9/ubi/615bcf606feffc5384e8452e) Builds with tags: `ubi9`, `jre-11-ubi9`, `jdk-11-ubi9`, `lucee5-ubi9`, `adobe2018-ubi9`, and `adobe2021-ubi9` +- Added [RHEL ubi9](https://catalog.redhat.com/software/containers/redhat/ubi/615bcf606feffc5384e8452e) Builds with tags: `ubi9`, `jre-11-rhel`, `jdk-11-rhel`, `lucee5-rhel`, `adobe2018-rhel`, and `adobe2021-rhel` ### Changed From d395a9d450b28cf0bab903081e1fc7a81fb495f9 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Fri, 14 Nov 2025 18:07:08 -0500 Subject: [PATCH 05/16] changelog update [ci skip] --- changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 367deb4..ec1c266 100644 --- a/changelog.md +++ b/changelog.md @@ -13,7 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - RedHat UBI images bumped to ubi-10 - `-ubi9` tags no changed to `-rhel` for clarity on OS. Old `-ubi9` tags will no longer will be created - Lucee 6 images bumped to `v6.2.3+35` -- Lucee 7 images added +- Lucee 7 images added (`v7.0.0+395`) +- Adobe 2021 Support Removed ## [6.2.1/3.13.7] From fbc466e7aaad7514d0959f7d48a2b374b4443086 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Sat, 15 Nov 2025 10:36:19 -0500 Subject: [PATCH 06/16] add additional JRE and JDK builds --- .github/workflows/release.yml | 14 ++++++ build/util/install-commandbox.sh | 3 ++ builds/alpine/Adobe2025.Dockerfile | 2 +- builds/alpine/Lucee7.Dockerfile | 2 +- builds/base/Alpine.JRE21.Dockerfile | 75 +++++++++++++++++++++++++++++ builds/base/Alpine.JRE25.Dockerfile | 75 +++++++++++++++++++++++++++++ builds/base/JRE24.Dockerfile | 68 ++++++++++++++++++++++++++ builds/base/rhel.JDK24.Dockerfile | 72 +++++++++++++++++++++++++++ builds/base/rhel.JDK25.Dockerfile | 72 +++++++++++++++++++++++++++ builds/base/rhel.JRE21.Dockerfile | 72 +++++++++++++++++++++++++++ builds/base/rhel.JRE24.Dockerfile | 72 +++++++++++++++++++++++++++ builds/base/rhel.JRE25.Dockerfile | 72 +++++++++++++++++++++++++++ builds/debian/Adobe2025.Dockerfile | 2 +- builds/redhat/Adobe2025.Dockerfile | 2 +- builds/redhat/Lucee7.Dockerfile | 2 +- 15 files changed, 600 insertions(+), 5 deletions(-) create mode 100644 builds/base/Alpine.JRE21.Dockerfile create mode 100644 builds/base/Alpine.JRE25.Dockerfile create mode 100644 builds/base/JRE24.Dockerfile create mode 100644 builds/base/rhel.JDK24.Dockerfile create mode 100644 builds/base/rhel.JDK25.Dockerfile create mode 100644 builds/base/rhel.JRE21.Dockerfile create mode 100644 builds/base/rhel.JRE24.Dockerfile create mode 100644 builds/base/rhel.JRE25.Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbf8eb1..acc2b24 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,8 +32,16 @@ jobs: BUILD_IMAGE_TAG: jdk23 - BUILD_IMAGE_DOCKERFILE: builds/base/JDK24.Dockerfile BUILD_IMAGE_TAG: jdk24 + - BUILD_IMAGE_DOCKERFILE: builds/base/JDK25.Dockerfile + BUILD_IMAGE_TAG: jdk25 - BUILD_IMAGE_DOCKERFILE: builds/base/JRE17.Dockerfile BUILD_IMAGE_TAG: jre17 + - BUILD_IMAGE_DOCKERFILE: builds/base/JRE21.Dockerfile + BUILD_IMAGE_TAG: jre21 + - BUILD_IMAGE_DOCKERFILE: builds/base/JRE24.Dockerfile + BUILD_IMAGE_TAG: jre24 + - BUILD_IMAGE_DOCKERFILE: builds/base/JRE25.Dockerfile + BUILD_IMAGE_TAG: jre25 - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.JDK8.Dockerfile BUILD_IMAGE_TAG: jdk8 - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5.Dockerfile @@ -64,8 +72,14 @@ jobs: BUILD_IMAGE_TAG: jdk17-rhel - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK21.Dockerfile BUILD_IMAGE_TAG: jdk21-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK24.Dockerfile + BUILD_IMAGE_TAG: jdk24-rhel - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE17.Dockerfile BUILD_IMAGE_TAG: jre17-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE21.Dockerfile + BUILD_IMAGE_TAG: jre21-rhel + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE24.Dockerfile + BUILD_IMAGE_TAG: jre24-rhel - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5.Dockerfile BUILD_IMAGE_TAG: lucee5-rhel - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee6.Dockerfile diff --git a/build/util/install-commandbox.sh b/build/util/install-commandbox.sh index 4186172..539ce5b 100755 --- a/build/util/install-commandbox.sh +++ b/build/util/install-commandbox.sh @@ -18,6 +18,9 @@ echo "$(box version) successfully installed" box uninstall --system commandbox-update-check +# Ensure we have updated versions of a couple core modules TODO: Remove this after the next commandbox release +box install --force commandbox-cfconfig,commandbox-boxlang + # Swap out binary with thin client now that everything is expanded curl https://s3.amazonaws.com/downloads.ortussolutions.com/ortussolutions/commandbox/${COMMANDBOX_VERSION}/box-thin -o ${BIN_DIR}/box diff --git a/builds/alpine/Adobe2025.Dockerfile b/builds/alpine/Adobe2025.Dockerfile index 91d07b0..0eb51cd 100644 --- a/builds/alpine/Adobe2025.Dockerfile +++ b/builds/alpine/Adobe2025.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK17.Dockerfile +INCLUDE+ builds/base/Alpine.JDK21.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Lucee7.Dockerfile b/builds/alpine/Lucee7.Dockerfile index eb93ae2..5aea470 100644 --- a/builds/alpine/Lucee7.Dockerfile +++ b/builds/alpine/Lucee7.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK21.Dockerfile +INCLUDE+ builds/base/Alpine.JRE25.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/base/Alpine.JRE21.Dockerfile b/builds/base/Alpine.JRE21.Dockerfile new file mode 100644 index 0000000..b09ec9d --- /dev/null +++ b/builds/base/Alpine.JRE21.Dockerfile @@ -0,0 +1,75 @@ +FROM eclipse-temurin:21-jre-alpine + +ARG VERSION +ARG COMMANDBOX_VERSION + +LABEL version ${VERSION} +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +# Alpine workgroup is root group +ENV WORKGROUP root + +# Flag as an alpine release +RUN touch /etc/alpine-release + +### Directory Mappings ### + +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/lib +WORKDIR $BIN_DIR + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +# Ensure all workgroup users have permission on the build scripts +RUN chown -R nobody:${WORKGROUP} $BUILD_DIR +RUN chmod -R +x $BUILD_DIR + + +# Basic Dependencies including binaries for PDF rendering +RUN rm -rf $BUILD_DIR/util/debian +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN $BUILD_DIR/util/alpine/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +WORKDIR $APP_DIR + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/Alpine.JRE25.Dockerfile b/builds/base/Alpine.JRE25.Dockerfile new file mode 100644 index 0000000..55e9bec --- /dev/null +++ b/builds/base/Alpine.JRE25.Dockerfile @@ -0,0 +1,75 @@ +FROM eclipse-temurin:25-jre-alpine + +ARG VERSION +ARG COMMANDBOX_VERSION + +LABEL version ${VERSION} +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +# Alpine workgroup is root group +ENV WORKGROUP root + +# Flag as an alpine release +RUN touch /etc/alpine-release + +### Directory Mappings ### + +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/lib +WORKDIR $BIN_DIR + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +# Ensure all workgroup users have permission on the build scripts +RUN chown -R nobody:${WORKGROUP} $BUILD_DIR +RUN chmod -R +x $BUILD_DIR + + +# Basic Dependencies including binaries for PDF rendering +RUN rm -rf $BUILD_DIR/util/debian +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN $BUILD_DIR/util/alpine/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +WORKDIR $APP_DIR + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/JRE24.Dockerfile b/builds/base/JRE24.Dockerfile new file mode 100644 index 0000000..06de078 --- /dev/null +++ b/builds/base/JRE24.Dockerfile @@ -0,0 +1,68 @@ +FROM eclipse-temurin:24-jre-noble +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN ${BUILD_DIR}/util/debian/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/rhel.JDK24.Dockerfile b/builds/base/rhel.JDK24.Dockerfile new file mode 100644 index 0000000..014c89d --- /dev/null +++ b/builds/base/rhel.JDK24.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:24-jdk-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/rhel.JDK25.Dockerfile b/builds/base/rhel.JDK25.Dockerfile new file mode 100644 index 0000000..51ebc0a --- /dev/null +++ b/builds/base/rhel.JDK25.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:25-jdk-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/rhel.JRE21.Dockerfile b/builds/base/rhel.JRE21.Dockerfile new file mode 100644 index 0000000..5d9030f --- /dev/null +++ b/builds/base/rhel.JRE21.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:21-jre-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/rhel.JRE24.Dockerfile b/builds/base/rhel.JRE24.Dockerfile new file mode 100644 index 0000000..c429c5f --- /dev/null +++ b/builds/base/rhel.JRE24.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:24-jre-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/base/rhel.JRE25.Dockerfile b/builds/base/rhel.JRE25.Dockerfile new file mode 100644 index 0000000..a2c1ab7 --- /dev/null +++ b/builds/base/rhel.JRE25.Dockerfile @@ -0,0 +1,72 @@ +FROM eclipse-temurin:25-jre-ubi10-minimal + +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +RUN microdnf install -y shadow-utils util-linux + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/debian + +RUN ${BUILD_DIR}/util/redhat/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh diff --git a/builds/debian/Adobe2025.Dockerfile b/builds/debian/Adobe2025.Dockerfile index 651f0e5..e64ef06 100644 --- a/builds/debian/Adobe2025.Dockerfile +++ b/builds/debian/Adobe2025.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK17.Dockerfile +INCLUDE+ builds/base/JDK21.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Adobe2025.Dockerfile b/builds/redhat/Adobe2025.Dockerfile index 9cd7fcc..6f33a27 100644 --- a/builds/redhat/Adobe2025.Dockerfile +++ b/builds/redhat/Adobe2025.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JDK17.Dockerfile +INCLUDE+ builds/base/rhel.JDK21.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Lucee7.Dockerfile b/builds/redhat/Lucee7.Dockerfile index e3375ec..f102283 100644 --- a/builds/redhat/Lucee7.Dockerfile +++ b/builds/redhat/Lucee7.Dockerfile @@ -1,5 +1,5 @@ # syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JDK21.Dockerfile +INCLUDE+ builds/base/rhel.JRE25.Dockerfile LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" From 71a8b5a29686b055ae9b406d267b1de15ba6dcc0 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Sat, 15 Nov 2025 10:47:32 -0500 Subject: [PATCH 07/16] remove JDK 8 and JDK 23 builds --- .github/workflows/release.yml | 167 ++++++++++++++++------------- builds/alpine/Base.JDK8.Dockerfile | 5 - builds/base/Alpine.JDK8.Dockerfile | 70 ------------ builds/base/JDK23.Dockerfile | 68 ------------ builds/base/JDK8.Dockerfile | 66 ------------ builds/debian/Base.JDK8.Dockerfile | 5 - builds/debian/Lucee4.Dockerfile | 11 -- 7 files changed, 91 insertions(+), 301 deletions(-) delete mode 100644 builds/alpine/Base.JDK8.Dockerfile delete mode 100644 builds/base/Alpine.JDK8.Dockerfile delete mode 100644 builds/base/JDK23.Dockerfile delete mode 100644 builds/base/JDK8.Dockerfile delete mode 100644 builds/debian/Base.JDK8.Dockerfile delete mode 100644 builds/debian/Lucee4.Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index acc2b24..b709fae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,117 +18,106 @@ jobs: strategy: matrix: include: + # Debian builds - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.Dockerfile - BUILD_IMAGE_TAG: latest - - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.Dockerfile - BUILD_IMAGE_TAG: jre11 + BUILD_IMAGE_TAGS: "latest,jre11" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK11.Dockerfile - BUILD_IMAGE_TAG: jdk11 + BUILD_IMAGE_TAGS: "jdk11" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK17.Dockerfile - BUILD_IMAGE_TAG: jdk17 + BUILD_IMAGE_TAGS: "jdk17" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK21.Dockerfile - BUILD_IMAGE_TAG: jdk21 - - BUILD_IMAGE_DOCKERFILE: builds/base/JDK23.Dockerfile - BUILD_IMAGE_TAG: jdk23 + BUILD_IMAGE_TAGS: "jdk21" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK24.Dockerfile - BUILD_IMAGE_TAG: jdk24 + BUILD_IMAGE_TAGS: "jdk24" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK25.Dockerfile - BUILD_IMAGE_TAG: jdk25 + BUILD_IMAGE_TAGS: "jdk25" - BUILD_IMAGE_DOCKERFILE: builds/base/JRE17.Dockerfile - BUILD_IMAGE_TAG: jre17 + BUILD_IMAGE_TAGS: "jre17" - BUILD_IMAGE_DOCKERFILE: builds/base/JRE21.Dockerfile - BUILD_IMAGE_TAG: jre21 + BUILD_IMAGE_TAGS: "jre21" - BUILD_IMAGE_DOCKERFILE: builds/base/JRE24.Dockerfile - BUILD_IMAGE_TAG: jre24 + BUILD_IMAGE_TAGS: "jre24" - BUILD_IMAGE_DOCKERFILE: builds/base/JRE25.Dockerfile - BUILD_IMAGE_TAG: jre25 - - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.JDK8.Dockerfile - BUILD_IMAGE_TAG: jdk8 + BUILD_IMAGE_TAGS: "jre25" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5.Dockerfile - BUILD_IMAGE_TAG: lucee5 + BUILD_IMAGE_TAGS: "lucee5" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee6.Dockerfile - BUILD_IMAGE_TAG: lucee6 + BUILD_IMAGE_TAGS: "lucee6" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee7.Dockerfile - BUILD_IMAGE_TAG: lucee7 + BUILD_IMAGE_TAGS: "lucee7" - BUILD_IMAGE_DOCKERFILE: builds/debian/LuceeLight.Dockerfile - BUILD_IMAGE_TAG: lucee-light + BUILD_IMAGE_TAGS: "lucee-light" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5Light.Dockerfile - BUILD_IMAGE_TAG: lucee5-light + BUILD_IMAGE_TAGS: "lucee5-light" - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2023.Dockerfile - BUILD_IMAGE_TAG: adobe2023 + BUILD_IMAGE_TAGS: "adobe2023" - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2025.Dockerfile - BUILD_IMAGE_TAG: adobe2025 + BUILD_IMAGE_TAGS: "adobe2025" - BUILD_IMAGE_DOCKERFILE: builds/debian/BoxLang.Dockerfile - BUILD_IMAGE_TAG: boxlang + BUILD_IMAGE_TAGS: "boxlang" - # ubi9 Builds - - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile - BUILD_IMAGE_TAG: ubi9 + # RHEL/UBI9 builds - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile - BUILD_IMAGE_TAG: jre11-rhel + BUILD_IMAGE_TAGS: "ubi9,jre11-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK11.Dockerfile - BUILD_IMAGE_TAG: jdk11-rhel + BUILD_IMAGE_TAGS: "jdk11-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK17.Dockerfile - BUILD_IMAGE_TAG: jdk17-rhel + BUILD_IMAGE_TAGS: "jdk17-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK21.Dockerfile - BUILD_IMAGE_TAG: jdk21-rhel + BUILD_IMAGE_TAGS: "jdk21-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK24.Dockerfile - BUILD_IMAGE_TAG: jdk24-rhel + BUILD_IMAGE_TAGS: "jdk24-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE17.Dockerfile - BUILD_IMAGE_TAG: jre17-rhel + BUILD_IMAGE_TAGS: "jre17-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE21.Dockerfile - BUILD_IMAGE_TAG: jre21-rhel + BUILD_IMAGE_TAGS: "jre21-rhel" - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE24.Dockerfile - BUILD_IMAGE_TAG: jre24-rhel + BUILD_IMAGE_TAGS: "jre24-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5.Dockerfile - BUILD_IMAGE_TAG: lucee5-rhel + BUILD_IMAGE_TAGS: "lucee5-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee6.Dockerfile - BUILD_IMAGE_TAG: lucee6-rhel + BUILD_IMAGE_TAGS: "lucee6-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee7.Dockerfile - BUILD_IMAGE_TAG: lucee7-rhel + BUILD_IMAGE_TAGS: "lucee7-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/LuceeLight.Dockerfile - BUILD_IMAGE_TAG: lucee-light-rhel + BUILD_IMAGE_TAGS: "lucee-light-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5Light.Dockerfile - BUILD_IMAGE_TAG: lucee5-light-rhel + BUILD_IMAGE_TAGS: "lucee5-light-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2023.Dockerfile - BUILD_IMAGE_TAG: adobe2023-rhel + BUILD_IMAGE_TAGS: "adobe2023-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2025.Dockerfile - BUILD_IMAGE_TAG: adobe2025-rhel + BUILD_IMAGE_TAGS: "adobe2025-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/BoxLang.Dockerfile - BUILD_IMAGE_TAG: boxlang-rhel + BUILD_IMAGE_TAGS: "boxlang-rhel" # Alpine builds # Note: No JDK builders currently support alpine with ARM - BUILD_IMAGE_DOCKERFILE: builds/alpine/Base.Dockerfile - BUILD_IMAGE_TAG: alpine - - BUILD_IMAGE_DOCKERFILE: builds/alpine/Base.Dockerfile - BUILD_IMAGE_TAG: jre11-alpine + BUILD_IMAGE_TAGS: "alpine,jre11-alpine" - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK11.Dockerfile - BUILD_IMAGE_TAG: jdk11-alpine + BUILD_IMAGE_TAGS: "jdk11-alpine" - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK17.Dockerfile - BUILD_IMAGE_TAG: jdk17-alpine + BUILD_IMAGE_TAGS: "jdk17-alpine" - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK21.Dockerfile - BUILD_IMAGE_TAG: jdk21-alpine + BUILD_IMAGE_TAGS: "jdk21-alpine" - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JRE17.Dockerfile - BUILD_IMAGE_TAG: jre17-alpine - - BUILD_IMAGE_DOCKERFILE: builds/alpine/Base.JDK8.Dockerfile - BUILD_IMAGE_TAG: jdk8-alpine + BUILD_IMAGE_TAGS: "jre17-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee5.Dockerfile - BUILD_IMAGE_TAG: lucee5-alpine + BUILD_IMAGE_TAGS: "lucee5-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee6.Dockerfile - BUILD_IMAGE_TAG: lucee6-alpine + BUILD_IMAGE_TAGS: "lucee6-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee7.Dockerfile - BUILD_IMAGE_TAG: lucee7-alpine + BUILD_IMAGE_TAGS: "lucee7-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/LuceeLight.Dockerfile - BUILD_IMAGE_TAG: lucee-light-alpine + BUILD_IMAGE_TAGS: "lucee-light-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee5Light.Dockerfile - BUILD_IMAGE_TAG: lucee5-light-alpine + BUILD_IMAGE_TAGS: "lucee5-light-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2023.Dockerfile - BUILD_IMAGE_TAG: adobe2023-alpine + BUILD_IMAGE_TAGS: "adobe2023-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2025.Dockerfile - BUILD_IMAGE_TAG: adobe2025-alpine + BUILD_IMAGE_TAGS: "adobe2025-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/BoxLang.Dockerfile - BUILD_IMAGE_TAG: boxlang-alpine + BUILD_IMAGE_TAGS: "boxlang-alpine" steps: - name: Checkout @@ -147,29 +136,50 @@ jobs: id: setup env: DOCKER_IMAGE: ortussolutions/commandbox - BUILD_IMAGE_TAG: ${{ matrix.BUILD_IMAGE_TAG }} + BUILD_IMAGE_TAGS: ${{ matrix.BUILD_IMAGE_TAGS }} COMMANDBOX_VERSION: 6.2.1 IMAGE_VERSION: 3.14.8 run: | - # Tag Builds - if [[ $GITHUB_REF == refs/tags/* ]]; then - - if [[ $BUILD_IMAGE_TAG == latest ]]; then - BUILD_IMAGE_TAG="${GITHUB_REF#refs/tags/v}" + # Split the comma-separated tags + IFS=',' read -ra TAG_ARRAY <<< "$BUILD_IMAGE_TAGS" + + # Initialize arrays for final tags + FINAL_TAGS=() + + # Process each tag + for tag in "${TAG_ARRAY[@]}"; do + # Tag Builds + if [[ $GITHUB_REF == refs/tags/* ]]; then + if [[ $tag == "latest" ]]; then + FINAL_TAGS+=("${GITHUB_REF#refs/tags/v}") + else + FINAL_TAGS+=("${tag}-${GITHUB_REF#refs/tags/v}") + fi + elif [[ $GITHUB_REF == 'refs/heads/development' ]]; then + # Snapshot builds + FINAL_TAGS+=("${tag}-snapshot") else - BUILD_IMAGE_TAG="${BUILD_IMAGE_TAG}-${GITHUB_REF#refs/tags/v}" + # Main branch builds + FINAL_TAGS+=("${tag}") fi + done - elif [[ $GITHUB_REF == 'refs/heads/development' ]]; then - - # Snapshot builds - BUILD_IMAGE_TAG="${BUILD_IMAGE_TAG}-snapshot" + # Join tags with comma for Docker build + printf -v TAGS_STRING '%s,' "${FINAL_TAGS[@]}" + TAGS_STRING="${TAGS_STRING%,}" # Remove trailing comma - fi - - TAGS="${DOCKER_IMAGE}:${BUILD_IMAGE_TAG}" + # Prefix with Docker image name + FULL_TAGS="" + for tag in "${FINAL_TAGS[@]}"; do + if [[ -z "$FULL_TAGS" ]]; then + FULL_TAGS="${DOCKER_IMAGE}:${tag}" + else + FULL_TAGS="${FULL_TAGS},${DOCKER_IMAGE}:${tag}" + fi + done - if [[ ${BUILD_IMAGE_TAG} == *"alpine"* ]] && [[ ${BUILD_IMAGE_TAG} != @(jd21-alpine|boxlang-alpine-snapshot|boxlang-alpine|boxlang-alpine-snapshot) ]]; then + # Determine architecture platforms based on tag content + if [[ ${BUILD_IMAGE_TAGS} == *"alpine"* ]] && [[ ${BUILD_IMAGE_TAGS} != *"jdk21-alpine"* ]] && [[ ${BUILD_IMAGE_TAGS} != *"boxlang-alpine"* ]]; then ARCH_PLATFORMS=linux/amd64 else ARCH_PLATFORMS=linux/amd64,linux/arm64/v8 @@ -179,7 +189,11 @@ jobs: echo "arch_platforms=${ARCH_PLATFORMS}" >> $GITHUB_ENV echo "image_version=${IMAGE_VERSION}" >> $GITHUB_ENV echo "commandbox_version=${COMMANDBOX_VERSION}" >> $GITHUB_ENV - echo "IMAGE_TAG=${TAGS}" >> $GITHUB_ENV + echo "IMAGE_TAG=${FULL_TAGS}" >> $GITHUB_ENV + + # Set the first tag for testing purposes + FIRST_TAG="${TAG_ARRAY[0]}" + echo "BUILD_IMAGE_TAG=${FIRST_TAG}" >> $GITHUB_ENV - name: Test env: @@ -187,6 +201,7 @@ jobs: DOCKER_BUILDKIT: 1 COMPOSE_DOCKER_CLI_BUILD: 1 BUILD_IMAGE_DOCKERFILE: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} + BUILD_IMAGE_TAG: ${{ env.BUILD_IMAGE_TAG }} run: | docker compose -f docker-compose.test.yml up --build --exit-code-from sut docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut diff --git a/builds/alpine/Base.JDK8.Dockerfile b/builds/alpine/Base.JDK8.Dockerfile deleted file mode 100644 index 1b431e6..0000000 --- a/builds/alpine/Base.JDK8.Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK8.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/base/Alpine.JDK8.Dockerfile b/builds/base/Alpine.JDK8.Dockerfile deleted file mode 100644 index 1dcaa09..0000000 --- a/builds/base/Alpine.JDK8.Dockerfile +++ /dev/null @@ -1,70 +0,0 @@ -FROM eclipse-temurin:8-jdk-alpine - -ARG COMMANDBOX_VERSION -ARG VERSION - -LABEL version ${VERSION} -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -# Default to UTF-8 file.encoding -ENV LANG C.UTF-8 - -# Since alpine runs as a single user, we need to create a "root" direcotry -ENV HOME /root - -# Alpine workgroup is the same -ENV WORKGROUP root - -# Flag as an alpine build -RUN touch /etc/alpine-release - -### Directory Mappings ### -# BIN_DIR = Where the box binary goes -ENV BIN_DIR /usr/bin -# LIB_DIR = Where the build files go -ENV LIB_DIR /usr/lib -WORKDIR $BIN_DIR - -# COMMANDBOX_HOME = Where CommmandBox Lives -ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox - -# APP_DIR = the directory where the application runs -ENV APP_DIR /app -WORKDIR $APP_DIR - -# BUILD_DIR = WHERE runtime scripts go -ENV BUILD_DIR $LIB_DIR/build -WORKDIR $BUILD_DIR - -# Copy file system -COPY ./test/ ${APP_DIR}/ -COPY ./build/ ${BUILD_DIR}/ - -# Ensure all workgroup users have permission on the build scripts -RUN chown -R nobody:${WORKGROUP} $BUILD_DIR -RUN chmod -R +x $BUILD_DIR - -# Basic Dependencies including binaries for PDF rendering -RUN rm -rf $BUILD_DIR/util/debian -RUN rm -rf $BUILD_DIR/util/ubi9 -RUN $BUILD_DIR/util/alpine/install-dependencies.sh - -# Commandbox Installation -RUN $BUILD_DIR/util/install-commandbox.sh - -# Default Port Environment Variables -ENV PORT 8080 -ENV SSL_PORT 8443 - -# Healthcheck environment variables -ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" - -# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries -HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 - -EXPOSE ${PORT} ${SSL_PORT} - -WORKDIR $APP_DIR - -CMD $BUILD_DIR/run.sh diff --git a/builds/base/JDK23.Dockerfile b/builds/base/JDK23.Dockerfile deleted file mode 100644 index 3ef46f5..0000000 --- a/builds/base/JDK23.Dockerfile +++ /dev/null @@ -1,68 +0,0 @@ -FROM eclipse-temurin:23-jdk-noble -ARG COMMANDBOX_VERSION - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -# Default to UTF-8 file.encoding -ENV LANG C.UTF-8 - -# Since alpine runs as a single user, we need to create a "root" direcotry -ENV HOME /root - -# Add a working group which any dynamic users can be assigned -ENV WORKGROUP runwar -RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root - -### Directory Mappings ### -# BIN_DIR = Where the box binary goes -ENV BIN_DIR /usr/local/bin -# LIB_DIR = Where the build files go -ENV LIB_DIR /usr/local/lib -WORKDIR $BIN_DIR - -# BUILD_DIR = WHERE runtime scripts go -ENV BUILD_DIR $LIB_DIR/build -WORKDIR $BUILD_DIR - -# COMMANDBOX_HOME = Where CommmandBox Lives -ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox - -# APP_DIR = the directory where the application runs -ENV APP_DIR /app -WORKDIR $APP_DIR - -# Copy file system -COPY ./test/ ${APP_DIR}/ -COPY ./build/ ${BUILD_DIR}/ -RUN chmod +x $BUILD_DIR/*.sh - -# Ensure all runwar users have permission on the build scripts -RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR - - -# Basic Dependencies -RUN rm -rf $BUILD_DIR/util/alpine -RUN rm -rf $BUILD_DIR/util/ubi9 -RUN ${BUILD_DIR}/util/debian/install-dependencies.sh - -# Commandbox Installation -RUN $BUILD_DIR/util/install-commandbox.sh - -# Add our custom classes added in the previous step to the java classpath -ENV CLASSPATH="$JAVA_HOME/classes" - - -# Default Port Environment Variables -ENV PORT 8080 -ENV SSL_PORT 8443 - -# Healthcheck environment variables -ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" - -# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries -HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 - -EXPOSE ${PORT} ${SSL_PORT} - -CMD $BUILD_DIR/run.sh diff --git a/builds/base/JDK8.Dockerfile b/builds/base/JDK8.Dockerfile deleted file mode 100644 index 35b285a..0000000 --- a/builds/base/JDK8.Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -FROM eclipse-temurin:8-jdk-noble - -ARG COMMANDBOX_VERSION - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -# Default to UTF-8 file.encoding -ENV LANG C.UTF-8 - -# Since alpine runs as a single user, we need to create a "root" direcotry -ENV HOME /root - -# Add a working group which any dynamic users can be assigned -ENV WORKGROUP runwar -RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root - -### Directory Mappings ### -# BIN_DIR = Where the box binary goes -ENV BIN_DIR /usr/local/bin -# LIB_DIR = Where the build files go -ENV LIB_DIR /usr/local/lib -WORKDIR $BIN_DIR - -# BUILD_DIR = WHERE runtime scripts go -ENV BUILD_DIR $LIB_DIR/build -WORKDIR $BUILD_DIR - -# COMMANDBOX_HOME = Where CommmandBox Lives -ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox - -# APP_DIR = the directory where the application runs -ENV APP_DIR /app -WORKDIR $APP_DIR - -# Copy file system -COPY ./test/ ${APP_DIR}/ -COPY ./build/ ${BUILD_DIR}/ -RUN chmod +x $BUILD_DIR/*.sh - -# Ensure all runwar users have permission on the build scripts -RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR - -# Basic Dependencies -RUN rm -rf $BUILD_DIR/util/alpine -RUN rm -rf $BUILD_DIR/util/ubi9 -RUN ${BUILD_DIR}/util/debian/install-dependencies.sh - -# Commandbox Installation -RUN $BUILD_DIR/util/install-commandbox.sh - - -# Default Port Environment Variables -ENV PORT 8080 -ENV SSL_PORT 8443 - - -# Healthcheck environment variables -ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" - -# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries -HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 - -EXPOSE ${PORT} ${SSL_PORT} - -CMD $BUILD_DIR/run.sh diff --git a/builds/debian/Base.JDK8.Dockerfile b/builds/debian/Base.JDK8.Dockerfile deleted file mode 100644 index 015a352..0000000 --- a/builds/debian/Base.JDK8.Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK8.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/debian/Lucee4.Dockerfile b/builds/debian/Lucee4.Dockerfile deleted file mode 100644 index 05d543c..0000000 --- a/builds/debian/Lucee4.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK8.Dockerfile - -LABEL maintainer "Jon Clausen " -LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" - -#Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE lucee@4.5 - -# WARM UP THE SERVER -RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file From 9b31e5e25208d09ff3a8d0e514b3efbbb54104c6 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Sat, 15 Nov 2025 11:25:06 -0500 Subject: [PATCH 08/16] consolidate build to two-phase approach - base images first and then engine images after --- .github/workflows/release.yml | 256 ++++++++++++++++++++++----- builds/alpine/Adobe2023.Dockerfile | 5 +- builds/alpine/Adobe2025.Dockerfile | 6 +- builds/alpine/Base.Dockerfile | 5 +- builds/alpine/BoxLang.Dockerfile | 6 +- builds/alpine/Lucee5.Dockerfile | 6 +- builds/alpine/Lucee5Light.Dockerfile | 6 +- builds/alpine/Lucee6.Dockerfile | 6 +- builds/alpine/Lucee7.Dockerfile | 6 +- builds/alpine/LuceeLight.Dockerfile | 6 +- builds/base/JRE21.Dockerfile | 68 +++++++ builds/debian/Adobe2023.Dockerfile | 5 +- builds/debian/Adobe2025.Dockerfile | 6 +- builds/debian/Base.Dockerfile | 5 +- builds/debian/BoxLang.Dockerfile | 5 +- builds/debian/Lucee5.Dockerfile | 6 +- builds/debian/Lucee5Light.Dockerfile | 6 +- builds/debian/Lucee6.Dockerfile | 6 +- builds/debian/Lucee7.Dockerfile | 5 +- builds/debian/LuceeLight.Dockerfile | 6 +- builds/redhat/Adobe2023.Dockerfile | 6 +- builds/redhat/Adobe2025.Dockerfile | 6 +- builds/redhat/Base.Dockerfile | 5 +- builds/redhat/BoxLang.Dockerfile | 6 +- builds/redhat/Lucee5.Dockerfile | 6 +- builds/redhat/Lucee5Light.Dockerfile | 6 +- builds/redhat/Lucee6.Dockerfile | 6 +- builds/redhat/Lucee7.Dockerfile | 6 +- builds/redhat/LuceeLight.Dockerfile | 6 +- docker-compose.secret-test.yml | 2 +- docker-compose.test.yml | 4 +- 31 files changed, 379 insertions(+), 106 deletions(-) create mode 100644 builds/base/JRE21.Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b709fae..bbc7b0f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,13 +13,13 @@ concurrency: cancel-in-progress: true jobs: - publish: + build-base-images: runs-on: ubuntu-latest strategy: matrix: include: - # Debian builds - - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.Dockerfile + # Foundation images (builds/base/* - eclipse-temurin based) with promoted tags + - BUILD_IMAGE_DOCKERFILE: builds/base/Dockerfile BUILD_IMAGE_TAGS: "latest,jre11" - BUILD_IMAGE_DOCKERFILE: builds/base/JDK11.Dockerfile BUILD_IMAGE_TAGS: "jdk11" @@ -39,85 +39,230 @@ jobs: BUILD_IMAGE_TAGS: "jre24" - BUILD_IMAGE_DOCKERFILE: builds/base/JRE25.Dockerfile BUILD_IMAGE_TAGS: "jre25" + + # RHEL/UBI9 foundation images with promoted tags + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.Dockerfile + BUILD_IMAGE_TAGS: "ubi9,jre11-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK11.Dockerfile + BUILD_IMAGE_TAGS: "jdk11-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK17.Dockerfile + BUILD_IMAGE_TAGS: "jdk17-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK21.Dockerfile + BUILD_IMAGE_TAGS: "jdk21-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK24.Dockerfile + BUILD_IMAGE_TAGS: "jdk24-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE17.Dockerfile + BUILD_IMAGE_TAGS: "jre17-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE21.Dockerfile + BUILD_IMAGE_TAGS: "jre21-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE24.Dockerfile + BUILD_IMAGE_TAGS: "jre24-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK25.Dockerfile + BUILD_IMAGE_TAGS: "jdk25-rhel" + - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE25.Dockerfile + BUILD_IMAGE_TAGS: "jre25-rhel" + + # Alpine foundation images with promoted tags + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.Dockerfile + BUILD_IMAGE_TAGS: "alpine,jre11-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK11.Dockerfile + BUILD_IMAGE_TAGS: "jdk11-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK17.Dockerfile + BUILD_IMAGE_TAGS: "jdk17-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK21.Dockerfile + BUILD_IMAGE_TAGS: "jdk21-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JRE17.Dockerfile + BUILD_IMAGE_TAGS: "jre17-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JRE21.Dockerfile + BUILD_IMAGE_TAGS: "jre21-alpine" + - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JRE25.Dockerfile + BUILD_IMAGE_TAGS: "jre25-alpine" + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + + - name: Setup Base Image Builds + id: setup + env: + DOCKER_IMAGE: ortussolutions/commandbox + BUILD_IMAGE_TAGS: ${{ matrix.BUILD_IMAGE_TAGS }} + COMMANDBOX_VERSION: 6.2.1 + IMAGE_VERSION: 3.14.8 + run: | + # Split the comma-separated tags + IFS=',' read -ra TAG_ARRAY <<< "$BUILD_IMAGE_TAGS" + + # Initialize arrays for final tags + FINAL_TAGS=() + + # Process each tag + for tag in "${TAG_ARRAY[@]}"; do + # Tag Builds + if [[ $GITHUB_REF == refs/tags/* ]]; then + if [[ $tag == "latest" ]]; then + FINAL_TAGS+=("${GITHUB_REF#refs/tags/v}") + else + FINAL_TAGS+=("${tag}-${GITHUB_REF#refs/tags/v}") + fi + elif [[ $GITHUB_REF == 'refs/heads/development' ]]; then + # Snapshot builds + FINAL_TAGS+=("${tag}-snapshot") + else + # Main branch builds + FINAL_TAGS+=("${tag}") + fi + done + + # Prefix with Docker image name + FULL_TAGS="" + for tag in "${FINAL_TAGS[@]}"; do + if [[ -z "$FULL_TAGS" ]]; then + FULL_TAGS="${DOCKER_IMAGE}:${tag}" + else + FULL_TAGS="${FULL_TAGS},${DOCKER_IMAGE}:${tag}" + fi + done + + # Determine architecture platforms based on tag content + if [[ ${BUILD_IMAGE_TAGS} == *"alpine"* ]] && [[ ${BUILD_IMAGE_TAGS} != *"jdk21-alpine"* ]] && [[ ${BUILD_IMAGE_TAGS} != *"boxlang-alpine"* ]]; then + ARCH_PLATFORMS=linux/amd64 + else + ARCH_PLATFORMS=linux/amd64,linux/arm64/v8 + fi + + # Set output parameters. + echo "arch_platforms=${ARCH_PLATFORMS}" >> $GITHUB_ENV + echo "image_version=${IMAGE_VERSION}" >> $GITHUB_ENV + echo "commandbox_version=${COMMANDBOX_VERSION}" >> $GITHUB_ENV + echo "IMAGE_TAG=${FULL_TAGS}" >> $GITHUB_ENV + + # Set the first tag for testing purposes + FIRST_TAG="${TAG_ARRAY[0]}" + echo "BUILD_IMAGE_TAG=${FIRST_TAG}" >> $GITHUB_ENV + + - name: Test built image + env: + BUILD_IMAGE_TAG: ${{ env.BUILD_IMAGE_TAG }} + run: | + chmod +x ${{ github.workspace }}/build/run.sh + ${{ github.workspace }}/build/run.sh + + - name: DockerHub Login + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Base Images + if: github.event_name != 'pull_request' + uses: docker/build-push-action@v6 + env: + DOCKER_BUILDKIT: 1 + with: + provenance: false + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} + build-args: | + COMMANDBOX_VERSION=${{ env.commandbox_version }} + platforms: ${{ env.arch_platforms }} + push: true + tags: ${{ env.IMAGE_TAG }} + + build-engine-images: + runs-on: ubuntu-latest + needs: build-base-images + strategy: + matrix: + include: + # Debian engine builds - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5.Dockerfile BUILD_IMAGE_TAGS: "lucee5" + BASE_IMAGE: "ortussolutions/commandbox:latest" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee6.Dockerfile BUILD_IMAGE_TAGS: "lucee6" + BASE_IMAGE: "ortussolutions/commandbox:jre17" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee7.Dockerfile BUILD_IMAGE_TAGS: "lucee7" + BASE_IMAGE: "ortussolutions/commandbox:jre25" - BUILD_IMAGE_DOCKERFILE: builds/debian/LuceeLight.Dockerfile BUILD_IMAGE_TAGS: "lucee-light" + BASE_IMAGE: "ortussolutions/commandbox:latest" - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5Light.Dockerfile BUILD_IMAGE_TAGS: "lucee5-light" + BASE_IMAGE: "ortussolutions/commandbox:latest" - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2023.Dockerfile BUILD_IMAGE_TAGS: "adobe2023" + BASE_IMAGE: "ortussolutions/commandbox:jdk17" - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2025.Dockerfile BUILD_IMAGE_TAGS: "adobe2025" + BASE_IMAGE: "ortussolutions/commandbox:jdk21" - BUILD_IMAGE_DOCKERFILE: builds/debian/BoxLang.Dockerfile BUILD_IMAGE_TAGS: "boxlang" + BASE_IMAGE: "ortussolutions/commandbox:jdk21" - # RHEL/UBI9 builds - - BUILD_IMAGE_DOCKERFILE: builds/redhat/Base.Dockerfile - BUILD_IMAGE_TAGS: "ubi9,jre11-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK11.Dockerfile - BUILD_IMAGE_TAGS: "jdk11-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK17.Dockerfile - BUILD_IMAGE_TAGS: "jdk17-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK21.Dockerfile - BUILD_IMAGE_TAGS: "jdk21-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JDK24.Dockerfile - BUILD_IMAGE_TAGS: "jdk24-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE17.Dockerfile - BUILD_IMAGE_TAGS: "jre17-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE21.Dockerfile - BUILD_IMAGE_TAGS: "jre21-rhel" - - BUILD_IMAGE_DOCKERFILE: builds/base/rhel.JRE24.Dockerfile - BUILD_IMAGE_TAGS: "jre24-rhel" + # RHEL engine builds - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5.Dockerfile BUILD_IMAGE_TAGS: "lucee5-rhel" + BASE_IMAGE: "ortussolutions/commandbox:ubi9" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee6.Dockerfile BUILD_IMAGE_TAGS: "lucee6-rhel" + BASE_IMAGE: "ortussolutions/commandbox:ubi9" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee7.Dockerfile BUILD_IMAGE_TAGS: "lucee7-rhel" + BASE_IMAGE: "ortussolutions/commandbox:jre25-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/LuceeLight.Dockerfile BUILD_IMAGE_TAGS: "lucee-light-rhel" + BASE_IMAGE: "ortussolutions/commandbox:ubi9" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Lucee5Light.Dockerfile BUILD_IMAGE_TAGS: "lucee5-light-rhel" + BASE_IMAGE: "ortussolutions/commandbox:ubi9" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2023.Dockerfile BUILD_IMAGE_TAGS: "adobe2023-rhel" + BASE_IMAGE: "ortussolutions/commandbox:jdk17-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/Adobe2025.Dockerfile BUILD_IMAGE_TAGS: "adobe2025-rhel" + BASE_IMAGE: "ortussolutions/commandbox:jdk21-rhel" - BUILD_IMAGE_DOCKERFILE: builds/redhat/BoxLang.Dockerfile BUILD_IMAGE_TAGS: "boxlang-rhel" + BASE_IMAGE: "ortussolutions/commandbox:jdk21-rhel" - # Alpine builds - # Note: No JDK builders currently support alpine with ARM - - BUILD_IMAGE_DOCKERFILE: builds/alpine/Base.Dockerfile - BUILD_IMAGE_TAGS: "alpine,jre11-alpine" - - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK11.Dockerfile - BUILD_IMAGE_TAGS: "jdk11-alpine" - - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK17.Dockerfile - BUILD_IMAGE_TAGS: "jdk17-alpine" - - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JDK21.Dockerfile - BUILD_IMAGE_TAGS: "jdk21-alpine" - - BUILD_IMAGE_DOCKERFILE: builds/base/Alpine.JRE17.Dockerfile - BUILD_IMAGE_TAGS: "jre17-alpine" + # Alpine engine builds - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee5.Dockerfile BUILD_IMAGE_TAGS: "lucee5-alpine" + BASE_IMAGE: "ortussolutions/commandbox:alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee6.Dockerfile BUILD_IMAGE_TAGS: "lucee6-alpine" + BASE_IMAGE: "ortussolutions/commandbox:alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee7.Dockerfile BUILD_IMAGE_TAGS: "lucee7-alpine" + BASE_IMAGE: "ortussolutions/commandbox:jre25-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/LuceeLight.Dockerfile BUILD_IMAGE_TAGS: "lucee-light-alpine" + BASE_IMAGE: "ortussolutions/commandbox:alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Lucee5Light.Dockerfile BUILD_IMAGE_TAGS: "lucee5-light-alpine" + BASE_IMAGE: "ortussolutions/commandbox:alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2023.Dockerfile BUILD_IMAGE_TAGS: "adobe2023-alpine" + BASE_IMAGE: "ortussolutions/commandbox:jdk17-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/Adobe2025.Dockerfile BUILD_IMAGE_TAGS: "adobe2025-alpine" + BASE_IMAGE: "ortussolutions/commandbox:jdk21-alpine" - BUILD_IMAGE_DOCKERFILE: builds/alpine/BoxLang.Dockerfile BUILD_IMAGE_TAGS: "boxlang-alpine" + BASE_IMAGE: "ortussolutions/commandbox:jdk21-alpine" steps: - name: Checkout @@ -132,11 +277,12 @@ jobs: id: buildx uses: docker/setup-buildx-action@master - - name: Setup Builds + - name: Setup Engine Image Builds id: setup env: DOCKER_IMAGE: ortussolutions/commandbox BUILD_IMAGE_TAGS: ${{ matrix.BUILD_IMAGE_TAGS }} + BASE_IMAGE: ${{ matrix.BASE_IMAGE }} COMMANDBOX_VERSION: 6.2.1 IMAGE_VERSION: 3.14.8 run: | @@ -164,9 +310,21 @@ jobs: fi done - # Join tags with comma for Docker build - printf -v TAGS_STRING '%s,' "${FINAL_TAGS[@]}" - TAGS_STRING="${TAGS_STRING%,}" # Remove trailing comma + # Process base image tag for version builds + ACTUAL_BASE_IMAGE="$BASE_IMAGE" + if [[ $GITHUB_REF == refs/tags/* ]]; then + # Extract tag from base image and add version suffix + BASE_TAG="${BASE_IMAGE#*:}" + if [[ $BASE_TAG == "latest" ]]; then + ACTUAL_BASE_IMAGE="${BASE_IMAGE%:*}:${GITHUB_REF#refs/tags/v}" + else + ACTUAL_BASE_IMAGE="${BASE_IMAGE%:*}:${BASE_TAG}-${GITHUB_REF#refs/tags/v}" + fi + elif [[ $GITHUB_REF == 'refs/heads/development' ]]; then + # Snapshot builds + BASE_TAG="${BASE_IMAGE#*:}" + ACTUAL_BASE_IMAGE="${BASE_IMAGE%:*}:${BASE_TAG}-snapshot" + fi # Prefix with Docker image name FULL_TAGS="" @@ -190,12 +348,13 @@ jobs: echo "image_version=${IMAGE_VERSION}" >> $GITHUB_ENV echo "commandbox_version=${COMMANDBOX_VERSION}" >> $GITHUB_ENV echo "IMAGE_TAG=${FULL_TAGS}" >> $GITHUB_ENV + echo "ACTUAL_BASE_IMAGE=${ACTUAL_BASE_IMAGE}" >> $GITHUB_ENV # Set the first tag for testing purposes FIRST_TAG="${TAG_ARRAY[0]}" echo "BUILD_IMAGE_TAG=${FIRST_TAG}" >> $GITHUB_ENV - - name: Test + - name: Test Engine Images env: COMMANDBOX_VERSION: ${{ env.commandbox_version }} DOCKER_BUILDKIT: 1 @@ -213,17 +372,16 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build Final - if: github.event_name != 'pull_request' - uses: docker/build-push-action@v6 - env: - DOCKER_BUILDKIT: 1 + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 with: - provenance: false - builder: ${{ steps.buildx.outputs.name }} - context: . - file: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} - build-args: COMMANDBOX_VERSION=${{ env.commandbox_version }} - platforms: ${{ env.arch_platforms }} + context: ${{ github.workspace }} + file: ${{ github.workspace }}/${{ matrix.dockerfile }} push: true - tags: ${{ env.IMAGE_TAG }} + pull: true + build-args: | + COMMANDBOX_VERSION=${{ env.commandbox_version }} + platforms: ${{ env.arch_platforms }} + builder: buildx-multi-arch + tags: ${{ env.IMAGE_TAG }} \ No newline at end of file diff --git a/builds/alpine/Adobe2023.Dockerfile b/builds/alpine/Adobe2023.Dockerfile index 5ad0ea4..f5bc26b 100644 --- a/builds/alpine/Adobe2023.Dockerfile +++ b/builds/alpine/Adobe2023.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK17.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Adobe2025.Dockerfile b/builds/alpine/Adobe2025.Dockerfile index 0eb51cd..5225592 100644 --- a/builds/alpine/Adobe2025.Dockerfile +++ b/builds/alpine/Adobe2025.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Base.Dockerfile b/builds/alpine/Base.Dockerfile index 09a0e92..d629b2e 100644 --- a/builds/alpine/Base.Dockerfile +++ b/builds/alpine/Base.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/alpine/BoxLang.Dockerfile b/builds/alpine/BoxLang.Dockerfile index ecc9b70..7af396d 100644 --- a/builds/alpine/BoxLang.Dockerfile +++ b/builds/alpine/BoxLang.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Lucee5.Dockerfile b/builds/alpine/Lucee5.Dockerfile index 786a78e..6debeaf 100644 --- a/builds/alpine/Lucee5.Dockerfile +++ b/builds/alpine/Lucee5.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Lucee5Light.Dockerfile b/builds/alpine/Lucee5Light.Dockerfile index 4d5aea6..9aaad91 100644 --- a/builds/alpine/Lucee5Light.Dockerfile +++ b/builds/alpine/Lucee5Light.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Lucee6.Dockerfile b/builds/alpine/Lucee6.Dockerfile index d375ed3..df770a3 100644 --- a/builds/alpine/Lucee6.Dockerfile +++ b/builds/alpine/Lucee6.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JRE17.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/Lucee7.Dockerfile b/builds/alpine/Lucee7.Dockerfile index 5aea470..5fb644b 100644 --- a/builds/alpine/Lucee7.Dockerfile +++ b/builds/alpine/Lucee7.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.JRE25.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/alpine/LuceeLight.Dockerfile b/builds/alpine/LuceeLight.Dockerfile index f2abc89..7668b6c 100644 --- a/builds/alpine/LuceeLight.Dockerfile +++ b/builds/alpine/LuceeLight.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Alpine.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/base/JRE21.Dockerfile b/builds/base/JRE21.Dockerfile new file mode 100644 index 0000000..c25e586 --- /dev/null +++ b/builds/base/JRE21.Dockerfile @@ -0,0 +1,68 @@ +FROM eclipse-temurin:21-jre-noble +ARG COMMANDBOX_VERSION + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +# Since alpine runs as a single user, we need to create a "root" direcotry +ENV HOME /root + +# Add a working group which any dynamic users can be assigned +ENV WORKGROUP runwar +RUN groupadd $WORKGROUP && usermod -a -G $WORKGROUP root + +### Directory Mappings ### +# BIN_DIR = Where the box binary goes +ENV BIN_DIR /usr/local/bin +# LIB_DIR = Where the build files go +ENV LIB_DIR /usr/local/lib +WORKDIR $BIN_DIR + +# BUILD_DIR = WHERE runtime scripts go +ENV BUILD_DIR $LIB_DIR/build +WORKDIR $BUILD_DIR + +# COMMANDBOX_HOME = Where CommmandBox Lives +ENV COMMANDBOX_HOME=$LIB_DIR/CommandBox + +# APP_DIR = the directory where the application runs +ENV APP_DIR /app +WORKDIR $APP_DIR + +# Copy file system +COPY ./test/ ${APP_DIR}/ +COPY ./build/ ${BUILD_DIR}/ +RUN chmod +x $BUILD_DIR/*.sh + +# Ensure all runwar users have permission on the build scripts +RUN chown -R $(whoami):${WORKGROUP} $BUILD_DIR + + +# Basic Dependencies +RUN rm -rf $BUILD_DIR/util/alpine +RUN rm -rf $BUILD_DIR/util/ubi9 +RUN ${BUILD_DIR}/util/debian/install-dependencies.sh + +# Commandbox Installation +RUN $BUILD_DIR/util/install-commandbox.sh + +# Add our custom classes added in the previous step to the java classpath +ENV CLASSPATH="$JAVA_HOME/classes" + + +# Default Port Environment Variables +ENV PORT 8080 +ENV SSL_PORT 8443 + +# Healthcheck environment variables +ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/" + +# Our healthcheck interval doesn't allow dynamic intervals - Default is 20s intervals with 15 retries +HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCHECK_URI} || exit 1 + +EXPOSE ${PORT} ${SSL_PORT} + +CMD $BUILD_DIR/run.sh \ No newline at end of file diff --git a/builds/debian/Adobe2023.Dockerfile b/builds/debian/Adobe2023.Dockerfile index 3b99161..f5bc26b 100644 --- a/builds/debian/Adobe2023.Dockerfile +++ b/builds/debian/Adobe2023.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK17.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Adobe2025.Dockerfile b/builds/debian/Adobe2025.Dockerfile index e64ef06..5225592 100644 --- a/builds/debian/Adobe2025.Dockerfile +++ b/builds/debian/Adobe2025.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Base.Dockerfile b/builds/debian/Base.Dockerfile index 5a4cffb..d629b2e 100644 --- a/builds/debian/Base.Dockerfile +++ b/builds/debian/Base.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/debian/BoxLang.Dockerfile b/builds/debian/BoxLang.Dockerfile index 699da97..9db62bd 100644 --- a/builds/debian/BoxLang.Dockerfile +++ b/builds/debian/BoxLang.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Lucee5.Dockerfile b/builds/debian/Lucee5.Dockerfile index b151eb6..6debeaf 100644 --- a/builds/debian/Lucee5.Dockerfile +++ b/builds/debian/Lucee5.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Lucee5Light.Dockerfile b/builds/debian/Lucee5Light.Dockerfile index 5600050..9aaad91 100644 --- a/builds/debian/Lucee5Light.Dockerfile +++ b/builds/debian/Lucee5Light.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Lucee6.Dockerfile b/builds/debian/Lucee6.Dockerfile index 7d92cba..df770a3 100644 --- a/builds/debian/Lucee6.Dockerfile +++ b/builds/debian/Lucee6.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JRE17.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/Lucee7.Dockerfile b/builds/debian/Lucee7.Dockerfile index 690911d..027da14 100644 --- a/builds/debian/Lucee7.Dockerfile +++ b/builds/debian/Lucee7.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/JRE25.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/debian/LuceeLight.Dockerfile b/builds/debian/LuceeLight.Dockerfile index fc6dbf6..7668b6c 100644 --- a/builds/debian/LuceeLight.Dockerfile +++ b/builds/debian/LuceeLight.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Adobe2023.Dockerfile b/builds/redhat/Adobe2023.Dockerfile index 96324e9..84a5d4a 100644 --- a/builds/redhat/Adobe2023.Dockerfile +++ b/builds/redhat/Adobe2023.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JDK17.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Adobe2025.Dockerfile b/builds/redhat/Adobe2025.Dockerfile index 6f33a27..5225592 100644 --- a/builds/redhat/Adobe2025.Dockerfile +++ b/builds/redhat/Adobe2025.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Base.Dockerfile b/builds/redhat/Base.Dockerfile index 035f7cb..d629b2e 100644 --- a/builds/redhat/Base.Dockerfile +++ b/builds/redhat/Base.Dockerfile @@ -1,5 +1,6 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" \ No newline at end of file diff --git a/builds/redhat/BoxLang.Dockerfile b/builds/redhat/BoxLang.Dockerfile index e2be059..7af396d 100644 --- a/builds/redhat/BoxLang.Dockerfile +++ b/builds/redhat/BoxLang.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JDK21.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Lucee5.Dockerfile b/builds/redhat/Lucee5.Dockerfile index ea3c1c7..6debeaf 100644 --- a/builds/redhat/Lucee5.Dockerfile +++ b/builds/redhat/Lucee5.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Lucee5Light.Dockerfile b/builds/redhat/Lucee5Light.Dockerfile index 95265cf..9aaad91 100644 --- a/builds/redhat/Lucee5Light.Dockerfile +++ b/builds/redhat/Lucee5Light.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Lucee6.Dockerfile b/builds/redhat/Lucee6.Dockerfile index d4aa62c..df770a3 100644 --- a/builds/redhat/Lucee6.Dockerfile +++ b/builds/redhat/Lucee6.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/Lucee7.Dockerfile b/builds/redhat/Lucee7.Dockerfile index f102283..5fb644b 100644 --- a/builds/redhat/Lucee7.Dockerfile +++ b/builds/redhat/Lucee7.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.JRE25.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/builds/redhat/LuceeLight.Dockerfile b/builds/redhat/LuceeLight.Dockerfile index a65fb33..7668b6c 100644 --- a/builds/redhat/LuceeLight.Dockerfile +++ b/builds/redhat/LuceeLight.Dockerfile @@ -1,5 +1,7 @@ -# syntax = edrevo/dockerfile-plus -INCLUDE+ builds/base/rhel.Dockerfile +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" diff --git a/docker-compose.secret-test.yml b/docker-compose.secret-test.yml index 33f1013..d1cb9f9 100644 --- a/docker-compose.secret-test.yml +++ b/docker-compose.secret-test.yml @@ -18,7 +18,7 @@ services: - TEST_DOCKER_SECRET=<> - BOX_SERVER_CFCONFIGFILE=myConfigs.json - IMAGE_TESTING_IN_PROGRESS=true - volumes: + volumes: - ./test:/app - ./build/tests/myConfigs.json:/app/myConfigs.json - ./build:/usr/local/lib/build diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 0bdc7e1..a81b5b8 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -8,13 +8,13 @@ services: sut: environment: IMAGE_TESTING_IN_PROGRESS: "true" - build: + build: context: . dockerfile: "./${BUILD_IMAGE_DOCKERFILE}" args : - COMMANDBOX_VERSION command: /root/build/test.sh #Mount our test directory ( and our build directory to make local testing easier ) - volumes: + volumes: - ./test:/app - ./build:/root/build \ No newline at end of file From 974f4a5e6c41add982ddf38b18d3ccfe2b1204b4 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Sat, 15 Nov 2025 11:35:51 -0500 Subject: [PATCH 09/16] fix tests for base images --- .github/workflows/release.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bbc7b0f..69ae575 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -152,10 +152,14 @@ jobs: - name: Test built image env: + COMMANDBOX_VERSION: ${{ env.commandbox_version }} + DOCKER_BUILDKIT: 1 + COMPOSE_DOCKER_CLI_BUILD: 1 + BUILD_IMAGE_DOCKERFILE: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} BUILD_IMAGE_TAG: ${{ env.BUILD_IMAGE_TAG }} run: | - chmod +x ${{ github.workspace }}/build/run.sh - ${{ github.workspace }}/build/run.sh + docker compose -f docker-compose.test.yml up --build --exit-code-from sut + docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut - name: DockerHub Login if: github.event_name != 'pull_request' @@ -377,11 +381,12 @@ jobs: uses: docker/build-push-action@v4 with: context: ${{ github.workspace }} - file: ${{ github.workspace }}/${{ matrix.dockerfile }} + file: ${{ github.workspace }}/${{ matrix.BUILD_IMAGE_DOCKERFILE }} push: true pull: true build-args: | COMMANDBOX_VERSION=${{ env.commandbox_version }} + BASE_IMAGE_ARG=${{ env.ACTUAL_BASE_IMAGE }} platforms: ${{ env.arch_platforms }} builder: buildx-multi-arch tags: ${{ env.IMAGE_TAG }} \ No newline at end of file From 4ed178b36713e1312b5fa860be2a1f11af251b71 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Sat, 15 Nov 2025 12:03:31 -0500 Subject: [PATCH 10/16] add manual updates for some specific CVE packages [ci skip] --- build/util/debian/install-dependencies.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build/util/debian/install-dependencies.sh b/build/util/debian/install-dependencies.sh index c802606..48a16c0 100755 --- a/build/util/debian/install-dependencies.sh +++ b/build/util/debian/install-dependencies.sh @@ -6,6 +6,15 @@ apt-get update # Upgrade all packages apt-get -y upgrade +# TODO: Remove this manual update when the next Ubuntu version is released and test if CVEs are resolved +# Manually update specific packages with known CVE vulnerabilities to latest available versions +apt-get install -y \ + linux-libc-dev \ + libkrb5support0 \ + libkrb5-3 \ + libk5crypto3 \ + libgssapi-krb5-2 + apt-get autoremove -y apt-get install --assume-yes \ From 04ff24b4a3adfd8dafc3bc38a095ccb7a60b562c Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Mon, 17 Nov 2025 10:19:29 -0500 Subject: [PATCH 11/16] add base image arg to tests --- .github/workflows/release.yml | 2 ++ docker-compose.secret-test.yml | 1 + docker-compose.test.yml | 1 + 3 files changed, 4 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 69ae575..ca94916 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -157,6 +157,7 @@ jobs: COMPOSE_DOCKER_CLI_BUILD: 1 BUILD_IMAGE_DOCKERFILE: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} BUILD_IMAGE_TAG: ${{ env.BUILD_IMAGE_TAG }} + BASE_IMAGE_ARG: run: | docker compose -f docker-compose.test.yml up --build --exit-code-from sut docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut @@ -365,6 +366,7 @@ jobs: COMPOSE_DOCKER_CLI_BUILD: 1 BUILD_IMAGE_DOCKERFILE: ${{ matrix.BUILD_IMAGE_DOCKERFILE }} BUILD_IMAGE_TAG: ${{ env.BUILD_IMAGE_TAG }} + BASE_IMAGE_ARG: ${{ env.ACTUAL_BASE_IMAGE }} run: | docker compose -f docker-compose.test.yml up --build --exit-code-from sut docker compose -f docker-compose.secret-test.yml up --build --exit-code-from sut diff --git a/docker-compose.secret-test.yml b/docker-compose.secret-test.yml index d1cb9f9..82019bd 100644 --- a/docker-compose.secret-test.yml +++ b/docker-compose.secret-test.yml @@ -12,6 +12,7 @@ services: dockerfile: "./${BUILD_IMAGE_DOCKERFILE}" args : - COMMANDBOX_VERSION + - BASE_IMAGE_ARG container_name: secret-test environment: - SOME_VAR=foo diff --git a/docker-compose.test.yml b/docker-compose.test.yml index a81b5b8..8cab4a9 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -13,6 +13,7 @@ services: dockerfile: "./${BUILD_IMAGE_DOCKERFILE}" args : - COMMANDBOX_VERSION + - BASE_IMAGE_ARG command: /root/build/test.sh #Mount our test directory ( and our build directory to make local testing easier ) volumes: From ce8e006361f730dacdad3f4ee864ce2f445ce4f6 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Mon, 17 Nov 2025 11:31:29 -0500 Subject: [PATCH 12/16] fix buildx --- .github/workflows/release.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca94916..fbeac49 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -379,9 +379,13 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push - id: docker_build - uses: docker/build-push-action@v4 + if: github.event_name != 'pull_request' + uses: docker/build-push-action@v6 + env: + DOCKER_BUILDKIT: 1 with: + provenance: false + builder: ${{ steps.buildx.outputs.name }} context: ${{ github.workspace }} file: ${{ github.workspace }}/${{ matrix.BUILD_IMAGE_DOCKERFILE }} push: true @@ -390,5 +394,4 @@ jobs: COMMANDBOX_VERSION=${{ env.commandbox_version }} BASE_IMAGE_ARG=${{ env.ACTUAL_BASE_IMAGE }} platforms: ${{ env.arch_platforms }} - builder: buildx-multi-arch tags: ${{ env.IMAGE_TAG }} \ No newline at end of file From 34f1224e752f3825f4b466939e4ad594624c99fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 17:50:34 +0000 Subject: [PATCH 13/16] Bump actions/checkout from 4 to 6 in /.github/workflows Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pull-request.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/scans.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 5eb71aa..9976ddf 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -78,7 +78,7 @@ jobs: BUILD_IMAGE_TAG: boxlang-alpine steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up QEMU uses: docker/setup-qemu-action@master diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbeac49..fe55f8a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -80,7 +80,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up QEMU uses: docker/setup-qemu-action@master @@ -271,7 +271,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up QEMU uses: docker/setup-qemu-action@master diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 2d5cf6a..5068f22 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up QEMU uses: docker/setup-qemu-action@master From 08168aa8f5e3bfa1a4c2edbf75e1b4d9dbdc8074 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Wed, 10 Dec 2025 09:53:08 -0500 Subject: [PATCH 14/16] bump BoxLang version --- .github/workflows/scans.yml | 8 ++++---- builds/alpine/BoxLang.Dockerfile | 2 +- builds/debian/BoxLang.Dockerfile | 2 +- builds/redhat/BoxLang.Dockerfile | 2 +- changelog.md | 1 + 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 2d5cf6a..e70ac8b 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -18,8 +18,8 @@ jobs: strategy: matrix: include: - - BUILD_IMAGE_DOCKERFILE: builds/debian/Base.Dockerfile - BUILD_IMAGE_TAG: CommandBox + - BUILD_IMAGE_DOCKERFILE: builds/base/Base.Dockerfile + BUILD_IMAGE_TAGS: CommandBox # - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5.Dockerfile # BUILD_IMAGE_TAG: lucee5.3.10.97 # - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2018.Dockerfile @@ -50,13 +50,13 @@ jobs: build-args: COMMANDBOX_VERSION=${{ env.COMMANDBOX_VERSION }} push: false load: true - tags: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAG }} + tags: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAGS }} - name: Scan generated packages uses: anchore/scan-action@v6 id: securityscan with: - image: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAG }} + image: ${{ env.DOCKER_IMAGE }}:${{ matrix.BUILD_IMAGE_TAGS }} severity-cutoff: "high" fail-build: false by-cve: "true" diff --git a/builds/alpine/BoxLang.Dockerfile b/builds/alpine/BoxLang.Dockerfile index 7af396d..8afbf98 100644 --- a/builds/alpine/BoxLang.Dockerfile +++ b/builds/alpine/BoxLang.Dockerfile @@ -7,6 +7,6 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE boxlang@1.7.0 +ENV BOX_SERVER_APP_CFENGINE boxlang@1.8.0 RUN ${BUILD_DIR}/util/warmup-server.sh diff --git a/builds/debian/BoxLang.Dockerfile b/builds/debian/BoxLang.Dockerfile index 9db62bd..2694f0b 100644 --- a/builds/debian/BoxLang.Dockerfile +++ b/builds/debian/BoxLang.Dockerfile @@ -6,6 +6,6 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE boxlang@1.7.0 +ENV BOX_SERVER_APP_CFENGINE boxlang@1.8.0 RUN ${BUILD_DIR}/util/warmup-server.sh diff --git a/builds/redhat/BoxLang.Dockerfile b/builds/redhat/BoxLang.Dockerfile index 7af396d..8afbf98 100644 --- a/builds/redhat/BoxLang.Dockerfile +++ b/builds/redhat/BoxLang.Dockerfile @@ -7,6 +7,6 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" -ENV BOX_SERVER_APP_CFENGINE boxlang@1.7.0 +ENV BOX_SERVER_APP_CFENGINE boxlang@1.8.0 RUN ${BUILD_DIR}/util/warmup-server.sh diff --git a/changelog.md b/changelog.md index ec1c266..38dae0c 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - RedHat UBI images bumped to ubi-10 - `-ubi9` tags no changed to `-rhel` for clarity on OS. Old `-ubi9` tags will no longer will be created +- BoxLang images bumped to `v1.8.0` - Lucee 6 images bumped to `v6.2.3+35` - Lucee 7 images added (`v7.0.0+395`) - Adobe 2021 Support Removed From 2dbde7208258034edee72d2d63603464c407b9a6 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Wed, 10 Dec 2025 10:10:56 -0500 Subject: [PATCH 15/16] update Adobe engine versions --- .github/workflows/release.yml | 3 +++ builds/alpine/Adobe2023.Dockerfile | 2 +- builds/alpine/Adobe2025.Dockerfile | 2 +- builds/debian/Adobe2021.Dockerfile | 12 ++++++++++++ builds/debian/Adobe2023.Dockerfile | 2 +- builds/debian/Adobe2025.Dockerfile | 2 +- builds/redhat/Adobe2023.Dockerfile | 2 +- builds/redhat/Adobe2025.Dockerfile | 2 +- changelog.md | 5 ++++- 9 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 builds/debian/Adobe2021.Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fe55f8a..bbf19ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -207,6 +207,9 @@ jobs: - BUILD_IMAGE_DOCKERFILE: builds/debian/Lucee5Light.Dockerfile BUILD_IMAGE_TAGS: "lucee5-light" BASE_IMAGE: "ortussolutions/commandbox:latest" + - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2021.Dockerfile + BUILD_IMAGE_TAGS: "adobe2021" + BASE_IMAGE: "ortussolutions/commandbox:jdk11" - BUILD_IMAGE_DOCKERFILE: builds/debian/Adobe2023.Dockerfile BUILD_IMAGE_TAGS: "adobe2023" BASE_IMAGE: "ortussolutions/commandbox:jdk17" diff --git a/builds/alpine/Adobe2023.Dockerfile b/builds/alpine/Adobe2023.Dockerfile index f5bc26b..aec4f3f 100644 --- a/builds/alpine/Adobe2023.Dockerfile +++ b/builds/alpine/Adobe2023.Dockerfile @@ -6,7 +6,7 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.16+330828 +ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.17+330864 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/alpine/Adobe2025.Dockerfile b/builds/alpine/Adobe2025.Dockerfile index 5225592..cd5d14c 100644 --- a/builds/alpine/Adobe2025.Dockerfile +++ b/builds/alpine/Adobe2025.Dockerfile @@ -8,7 +8,7 @@ LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.04+331512 +ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.05+331552 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2021.Dockerfile b/builds/debian/Adobe2021.Dockerfile new file mode 100644 index 0000000..53d3466 --- /dev/null +++ b/builds/debian/Adobe2021.Dockerfile @@ -0,0 +1,12 @@ +# syntax = docker/dockerfile:1 +ARG BASE_IMAGE_ARG +FROM ${BASE_IMAGE_ARG} + +LABEL maintainer "Jon Clausen " +LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" + +#Hard Code our engine environment +ENV BOX_SERVER_APP_CFENGINE adobe@2021.0.23+330486 + +# WARM UP THE SERVER +RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2023.Dockerfile b/builds/debian/Adobe2023.Dockerfile index f5bc26b..aec4f3f 100644 --- a/builds/debian/Adobe2023.Dockerfile +++ b/builds/debian/Adobe2023.Dockerfile @@ -6,7 +6,7 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.16+330828 +ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.17+330864 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/debian/Adobe2025.Dockerfile b/builds/debian/Adobe2025.Dockerfile index 5225592..cd5d14c 100644 --- a/builds/debian/Adobe2025.Dockerfile +++ b/builds/debian/Adobe2025.Dockerfile @@ -8,7 +8,7 @@ LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.04+331512 +ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.05+331552 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/redhat/Adobe2023.Dockerfile b/builds/redhat/Adobe2023.Dockerfile index 84a5d4a..bc94b38 100644 --- a/builds/redhat/Adobe2023.Dockerfile +++ b/builds/redhat/Adobe2023.Dockerfile @@ -7,7 +7,7 @@ LABEL maintainer "Jon Clausen " LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.16+330828 +ENV BOX_SERVER_APP_CFENGINE adobe@2023.0.17+330864 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/builds/redhat/Adobe2025.Dockerfile b/builds/redhat/Adobe2025.Dockerfile index 5225592..cd5d14c 100644 --- a/builds/redhat/Adobe2025.Dockerfile +++ b/builds/redhat/Adobe2025.Dockerfile @@ -8,7 +8,7 @@ LABEL repository "https://github.com/Ortus-Solutions/docker-commandbox" #Hard Code our engine environment -ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.04+331512 +ENV BOX_SERVER_APP_CFENGINE adobe@2025.0.05+331552 # WARM UP THE SERVER RUN ${BUILD_DIR}/util/warmup-server.sh \ No newline at end of file diff --git a/changelog.md b/changelog.md index 38dae0c..2a2d123 100644 --- a/changelog.md +++ b/changelog.md @@ -15,7 +15,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - BoxLang images bumped to `v1.8.0` - Lucee 6 images bumped to `v6.2.3+35` - Lucee 7 images added (`v7.0.0+395`) -- Adobe 2021 Support Removed +- Adobe Coldfusion 2025 bumped to `2025.0.05+331552` +- Adobe Coldfusion 2023 bumped to `2023.0.17+330864` +- Adobe Coldfusion 2021 bumped to `2021.0.23+330486` - now only building Ubuntu version +- Adobe 2021 Support to be removed in next version due to 11/25/2025 EOL/EOS notice ## [6.2.1/3.13.7] From 4d7101fdc18c38658a1d9a34260fdc7e979f3132 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Wed, 10 Dec 2025 11:52:56 -0500 Subject: [PATCH 16/16] fix version [ci skip] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bbf19ba..cf5d492 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -292,7 +292,7 @@ jobs: BUILD_IMAGE_TAGS: ${{ matrix.BUILD_IMAGE_TAGS }} BASE_IMAGE: ${{ matrix.BASE_IMAGE }} COMMANDBOX_VERSION: 6.2.1 - IMAGE_VERSION: 3.14.8 + IMAGE_VERSION: 3.14.0 run: | # Split the comma-separated tags IFS=',' read -ra TAG_ARRAY <<< "$BUILD_IMAGE_TAGS"