From c9b4bf68645b4b1a908c07ea0500ff8806df9052 Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Tue, 27 May 2025 11:03:56 -0400 Subject: [PATCH 01/16] bump snapshot --- .github/workflows/release.yml | 2 +- changelog.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 31bb7ba..00c9f95 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.0 - IMAGE_VERSION: 3.13.2 + IMAGE_VERSION: 3.13.5 run: | # Tag Builds if [[ $GITHUB_REF == refs/tags/* ]]; then diff --git a/changelog.md b/changelog.md index c630f37..b94c17c 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,8 @@ 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] + ## [6.2.0/3.13.4] - 2025-05-26 ### Changed From b952b2d8125a3c930908410530d64c6e71ad3f3d Mon Sep 17 00:00:00 2001 From: Jon Clausen Date: Tue, 17 Jun 2025 12:10:16 -0400 Subject: [PATCH 02/16] only enable debugging option if in development --- test/index.cfm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/test/index.cfm b/test/index.cfm index c52f028..dd51ff8 100644 --- a/test/index.cfm +++ b/test/index.cfm @@ -1,8 +1,10 @@ - - - system = createObject( "java", "java.lang.System" ); - env = system.getenv(); - + + + system = createObject( "java", "java.lang.System" ); + env = system.getenv(); + debugEnabled = structKeyExists( env, "ENVIRONMENT" ) ? ( env.ENVIRONMENT == "development" ) : false; + + @@ -33,8 +35,10 @@ Is up and Running on Docker! -

- If you want to see some debugging information for this instance, click on the debug link: see debugging -

+ +

+ If you want to see some debugging information for this instance, click on the debug link: see debugging +

+
\ No newline at end of file From 2f075626c70eb3297b2a7e64eb141800701b8833 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 17:15:02 +0200 Subject: [PATCH 03/16] - EditorConfig support for VSCode and IntelliJ - Added gitattributes file to ignore unnecessary files in git - Added markdownlint configuration and markdown lint fix --- .editorconfig | 20 ++++ .gitattributes | 22 ++++ .markdownlint.json | 16 +++ changelog.md | 252 ++++++++++++++++++++++++++++++--------------- 4 files changed, 227 insertions(+), 83 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .markdownlint.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a2c8081 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# http://editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false +indent_style = tab +indent_size = 4 +tab_width = 4 + +[*.yml] +indent_style = space +indent_size = 2 + +[*.{md,markdown}] +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..21bc843 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,16 @@ +{ + "line-length": false, + "single-h1": false, + "no-hard-tabs" : false, + "fenced-code-language" : false, + "no-bare-urls" : false, + "first-line-h1": false, + "no-multiple-blanks": { + "maximum": 2 + }, + "no-duplicate-header" : { + "siblings_only" : true + }, + "no-duplicate-heading" : false, + "no-inline-html" : false +} diff --git a/changelog.md b/changelog.md index b94c17c..eccbaed 100644 --- a/changelog.md +++ b/changelog.md @@ -6,233 +6,285 @@ 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] +### Added + +- EditorConfig support for VSCode and IntelliJ +- Added gitattributes file to ignore unnecessary files in git +- Added markdownlint configuration and markdown lint fix + ## [6.2.0/3.13.4] - 2025-05-26 ### Changed -* Adobe Coldfusion 2021 updated to `2021.0.20+330407` -* Adobe Coldfusion 2023 updated to `2023.0.14+330784` -* Adobe Coldfusion 2025 updated to `2025.0.02+331451` -* Lucee 6 updated to `6.2.1+122` +- Adobe Coldfusion 2021 updated to `2021.0.20+330407` +- Adobe Coldfusion 2023 updated to `2023.0.14+330784` +- Adobe Coldfusion 2025 updated to `2025.0.02+331451` +- Lucee 6 updated to `6.2.1+122` ## [6.2.0/3.13.3] - 2025-04-29 ### Changed -* Boxlang version to 1.0.0 +- Boxlang version to 1.0.0 ## [6.2.0/3.13.1] - 2025-04-25 ### Changed -* JDK/JRE 11 images bumped to version `11.0.27_6` -* JDK/JRE 17 images bumped to version `17.0.15_6` -* JDK/JRE 21 images bumped to version `21.0.7_6` -* JDK/JRE 23 images bumped to version `23.0.2_7` -* JDK/JRE 24 images bumped to version `24.0.1_9` - +- JDK/JRE 11 images bumped to version `11.0.27_6` +- JDK/JRE 17 images bumped to version `17.0.15_6` +- JDK/JRE 21 images bumped to version `21.0.7_6` +- JDK/JRE 23 images bumped to version `23.0.2_7` +- JDK/JRE 24 images bumped to version `24.0.1_9` ## [6.2.0/3.13.0] - 2025-04-10 ### Changed -* Adobe Coldfusion 2025 updated to `2025.0.01+331420` -* Ubuntu base version changed to v24 ( Noble ) +- Adobe Coldfusion 2025 updated to `2025.0.01+331420` +- Ubuntu base version changed to v24 ( Noble ) ### Added -* Added `:jdk23` and `:jdk24` Build tags +- Added `:jdk23` and `:jdk24` Build tags ## [6.2.0/3.12.0] - 2025-04-01 ### Changed -* CommandBox Binary to v6.2.0 +- CommandBox Binary to v6.2.0 ### Added -* Add Adobe Coldfusion 2025 Engine ( version `2025.0.0+331385` ) +- Add Adobe Coldfusion 2025 Engine ( version `2025.0.0+331385` ) ### Removed -* Removed Adobe Coldfusion 2018 Builds, as it is EOL +- Removed Adobe Coldfusion 2018 Builds, as it is EOL ## [6.1.0/3.11.0] - 2025-03-05 ### Added -* Jarkarta support for [BoxLang](https://boxlang.io/) and Adobe 2025 -* Boxlang version bumped to `1.0.0-rc.2` +- Jarkarta support for [BoxLang](https://boxlang.io/) and Adobe 2025 +- Boxlang version bumped to `1.0.0-rc.2` ## [6.1.0/3.10.2] - 2025-02-07 ### Changed -* JDK/JRE 11 images bumped to version `11.0.26_4` -* JDK/JRE 17 images bumped to version `17.0.14_7` -* JDK/JRE 21 images bumped to version `21.0.6_7` +- JDK/JRE 11 images bumped to version `11.0.26_4` +- JDK/JRE 17 images bumped to version `17.0.14_7` +- JDK/JRE 21 images bumped to version `21.0.6_7` ## [6.1.0/3.10.1] - 2024-12-25 + ### Changed -* Adobe 2023 image bump to release version `2023.0.12+330713` -* Adobe 2021 image bump to release version `2021.0.18+330341` +- Adobe 2023 image bump to release version `2023.0.12+330713` +- Adobe 2021 image bump to release version `2021.0.18+330341` ## [6.1.0/3.10.0] - 2024-11-05 ### Changed -* CommandBox Binary to v6.1.0 -* Lucee Tagged images to v5.4.6+9 +- CommandBox Binary to v6.1.0 +- Lucee Tagged images to v5.4.6+9 ## [6.0.0/3.9.10] - 2024-09-10 + ### Changed -* Adobe 2023 image bump to release version `2023.0.10+330680` -* Adobe 2021 image bump to release version `2021.0.16+330307` +- Adobe 2023 image bump to release version `2023.0.10+330680` +- Adobe 2021 image bump to release version `2021.0.16+330307` ## [6.0.0/3.9.9] - 2024-09-09 + ### Changed -* Adobe 2023 image bump to release version `2023.0.09+330677` -* Adobe 2021 image bump to release version `2021.0.15+330303` +- Adobe 2023 image bump to release version `2023.0.09+330677` +- Adobe 2021 image bump to release version `2021.0.15+330303` ## [6.0.0/3.9.8] - 2024-07-26 + ### Changed -* BoxLang Images to Beta 7 +- BoxLang Images to Beta 7 ## [6.0.0/3.9.7] - 2024-07-24 + ### Changed -* BoxLang Images to Beta 6 +- BoxLang Images to Beta 6 ## [6.0.0/3.9.6] - 2024-07-05 + ### Changed -* BoxLang Images to Beta 4 +- BoxLang Images to Beta 4 ## [6.0.0/3.9.5] - 2024-06-26 + ### Added -* Add JDK21 builds for Alpine, UBI, and Ubuntu -* ARM arch builds for Alpine JDK21 Images -* Add BoxLang images +- Add JDK21 builds for Alpine, UBI, and Ubuntu +- ARM arch builds for Alpine JDK21 Images +- Add BoxLang images ## [6.0.0/3.9.4] - 2024-05-03 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.08+330668` -* Adobe 2021 image bumped to release version `2021.0.14+330296` +- Adobe 2023 image bumped to release version `2023.0.08+330668` +- Adobe 2021 image bumped to release version `2021.0.14+330296` ## [6.0.0/3.9.3] - 2024-05-03 + ### Changed -* JDK/JRE 11 images bumped to version `11.0.23_9` -* JDK/JRE 17 images bumped to version `17.0.11_9` +- JDK/JRE 11 images bumped to version `11.0.23_9` +- JDK/JRE 17 images bumped to version `17.0.11_9` ## [6.0.0/3.9.2] - 2024-03-28 + ### Changed -* `:lucee5` tags changed to match CommandBox 6 Lucee version of `5.4.4+38` -* Ortus ORM Extension version in `:lucee5` images updated to `v6.5.2` +- `:lucee5` tags changed to match CommandBox 6 Lucee version of `5.4.4+38` +- Ortus ORM Extension version in `:lucee5` images updated to `v6.5.2` ### Added -* `:lucee5-light` image added +- `:lucee5-light` image added ### Fixed -* Changed JVM log util format to use `JAVA_TOOL_OPTIONS` env variable to prevent overwrite of custom `BOX_SERVER_JVM_ARGS` in environment and `server.json` files +- Changed JVM log util format to use `JAVA_TOOL_OPTIONS` env variable to prevent overwrite of custom `BOX_SERVER_JVM_ARGS` in environment and `server.json` files ## [6.0.0/3.9.1] - 2024-03-28 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.07+330663` -* Adobe 2021 image bumped to release version `2021.0.13+330286` +- Adobe 2023 image bumped to release version `2023.0.07+330663` +- Adobe 2021 image bumped to release version `2021.0.13+330286` ## [6.0.0/3.9.0] - 2024-02-16 + ### Changed -* CommandBox Binary updated to v6.0.0 +- CommandBox Binary updated to v6.0.0 ### Removed -* removed Runwar args as they are no longer suppored -* Changed log pattern to server config default -* Removed code turning off the directory watcher as it is no longer on by default +- removed Runwar args as they are no longer suppored +- Changed log pattern to server config default +- Removed code turning off the directory watcher as it is no longer on by default ## [5.9.1/3.8.5] - 2024-01-24 + ### Changed -* JDK/JRE 11 images bumped to version `11.0.22_7` -* JDK/JRE 17 images bumped to version `17.0.10_7` +- JDK/JRE 11 images bumped to version `11.0.22_7` +- JDK/JRE 17 images bumped to version `17.0.10_7` ## [5.9.1/3.8.4] - 2023-11-14 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.06+330617` -* Adobe 2021 image bumped to release version `2021.0.12+330257` +- Adobe 2023 image bumped to release version `2023.0.06+330617` +- Adobe 2021 image bumped to release version `2021.0.12+330257` ## [5.9.1/3.8.3] - 2023-10-11 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.05+330608` -* Adobe 2021 image bumped to release version `2021.0.11+330247` +- Adobe 2023 image bumped to release version `2023.0.05+330608` +- Adobe 2021 image bumped to release version `2021.0.11+330247` + ## [5.9.1/3.8.2] - 2023-10-02 -* Lucee 5 Ortus ORM extension updated to 6.3.2 +- Lucee 5 Ortus ORM extension updated to 6.3.2 + ## [5.9.1/3.8.1] - 2023-09-29 + ### Changed -* Lucee 5 Ortus ORM extension updated to 6.3.1 +- Lucee 5 Ortus ORM extension updated to 6.3.1 ## [5.9.1/3.8.0] - 2023-08-17 + ### Changed -* CommandBox Binary Updated to `v5.9.1` -* Lucee image versions updated to `v5.4.3+2` -* Adobe 2023 image bumped to release version `2023.0.04+330500` -* Adobe 2021 image bumped to release version `2021.0.10+330161` -* Current version of `commandbox-cfconfig` will now fail to start the server if the assigned configfile is not found +- CommandBox Binary Updated to `v5.9.1` +- Lucee image versions updated to `v5.4.3+2` +- Adobe 2023 image bumped to release version `2023.0.04+330500` +- Adobe 2021 image bumped to release version `2021.0.10+330161` +- Current version of `commandbox-cfconfig` will now fail to start the server if the assigned configfile is not found ### Added -* [Ortus Lucee ORM Extension](https://www.ortussolutions.com/products/orm-extension) now bundled with Lucee images, since Lucee 5.4+ no longer includes an ORM extension +- [Ortus Lucee ORM Extension](https://www.ortussolutions.com/products/orm-extension) now bundled with Lucee images, since Lucee 5.4+ no longer includes an ORM extension ## [5.9.0/3.7.12] - 2023-08-15 + ### Changed -* Lucee image versions bumped to `v5.3.12+1` +- Lucee image versions bumped to `v5.3.12+1` ## [5.9.0/3.7.11] - 2023-07-27 + ### Changed -* JRE 11 versions to `11.0.20_8` -* JRE 17 versions to `17.0.8_7` +- JRE 11 versions to `11.0.20_8` +- JRE 17 versions to `17.0.8_7` + ## [5.9.0/3.7.10] - 2023-07-12 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.3+330486` -* Adobe 2021 image bumped to release version `2021.0.9+330148` -* Adobe 2018 image bumped to release version `2018.0.19+330149` +- Adobe 2023 image bumped to release version `2023.0.3+330486` +- Adobe 2021 image bumped to release version `2021.0.9+330148` +- Adobe 2018 image bumped to release version `2018.0.19+330149` ## [5.9.0/3.7.9] - 2023-07-12 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.2+330482` -* Adobe 2021 image bumped to release version `2021.0.8+330144` -* Adobe 2018 image bumped to release version `2018.0.18+330145` +- Adobe 2023 image bumped to release version `2023.0.2+330482` +- Adobe 2021 image bumped to release version `2021.0.8+330144` +- Adobe 2018 image bumped to release version `2018.0.18+330145` + ## [5.9.0/3.7.8] - 2023-07-12 + ### Added -* Add Java tool options for serialization for all Adobe containers, [per technotes](https://helpx.adobe.com/security/products/coldfusion/apsb23-40.html) +- Add Java tool options for serialization for all Adobe containers, [per technotes](https://helpx.adobe.com/security/products/coldfusion/apsb23-40.html) + ## [5.9.0/3.7.7] - 2023-07-12 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.1+330480` -* Adobe 2021 image bumped to release version `2021.0.7+330142` -* Adobe 2018 image bumped to release version `2018.0.17+330143` +- Adobe 2023 image bumped to release version `2023.0.1+330480` +- Adobe 2021 image bumped to release version `2021.0.7+330142` +- Adobe 2018 image bumped to release version `2018.0.17+330143` + ## [5.9.0/3.7.6] - 2023-05-23 + ### Changed -* Adobe 2023 image bumped to release version `2023.0.0+330468` +- Adobe 2023 image bumped to release version `2023.0.0+330468` + ## [5.9.0/3.7.5] - 2023-05-23 + ### Fixed -* Fixes an issue with manifests no longer being generated by BuildX +- Fixes an issue with manifests no longer being generated by BuildX + ## [5.9.0/3.7.4] - 2023-05-03 + ### Changed + - Removed arm/v7 ( 32 bit ) support due to JDK17 requirements - CommandBox binary updated to `5.9.0` + ## [5.8.0/3.7.3] - 2023-03-23 + ### Fixed + - Fixes an issue where CLI ID files were not being deleted after installing commandbox and warming up the server + ## [5.8.0/3.7.2] - 2023-03-17 + ### Fixed + - Fixes an issue where specifying an alternate webroot ( e.g. `BOX_SERVER_WEB_WEBROOT` ) fail to start the container + ## [5.8.0/3.7.1] - 2023-03-15 + ### Changed + - Updates `:adobe2021` tag to version `2021.0.06+330132` - Updates `:adobe2018` tag to version `2018.0.16+330130` ## [5.8.0/3.7.0] - 2023-03-10 + ## Changed + - CommandBox version to 5.8.0 - Lucee image versions bumped to `v5.3.10+120` - Ubuntu base version changed to v22 ( Jammy ) @@ -241,99 +293,131 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added support, in container log output, for [JSON log formatting](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/console-log-layout#customize-layout) ## [5.7.0/3.6.4] - 2022-12-15 + ### Changed + - Lucee image versions bumped to `v5.3.10+97` + ## [5.7.0/3.6.3] - 2022-12-07 ### 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` ### Changed + - CommandBox version to 5.7.0 - Removed the pruning of certain CommandBox modules to allow for more use cases ### Removed + - Removed Adobe Coldfusion 2016 builds ## [5.6.1/3.6.2] - 2022-10-31 + ### Changed + - `:lucee5` image bumped to use v5.3.9+160 - Resolves [Issue #63](https://github.com/Ortus-Solutions/docker-commandbox/issues/63) - Changed all Adobe images over to use JDK as base instead of JRE due to webservices compilation errors. Size increased by 141MB. [Adobe Bug Report](https://tracker.adobe.com/#/view/CF-4215554) ## [5.6.1/3.6.1] - 2022-10-18 ### Fixed + - Resolves [Issue #70](https://github.com/Ortus-Solutions/docker-commandbox/issues/70) - `CFPM_INSTALL` environment variables were not being applied/evaluated correctly ### Added + - Resolves [Issue #64](https://github.com/Ortus-Solutions/docker-commandbox/issues/64) Added support for specifying a user identifier ( `USER_ID` ) at runtime and default UID to `1001` to ease ownership/permissions of mounts. ### Changed + - Updates `:adobe2021` tag to version `2021.0.05+330109` - Updates `:adobe2018` tag to version `2018.0.15+330106` ## [5.6.1/3.6.0] - 2022-09-05 + ### Changed + - Updates CommandBox Binary to v5.6.1 ## [5.5.2/3.5.4] - 2022-07-29 + ### Changed -- Update JRE base images to 11.0.16 +- Update JRE base images to 11.0.16 ## [5.5.2/3.5.3] - 2022-05-03 + ### Added + - Added default `BOX_SERVER_RUNWAR_ARGS` environment variable to disable the Undertow system file watcher. On large applications, or applications with many static assets, this can speed up start times by 20-30s + ## [5.5.2/3.5.2] - 2022-05-03 + ### Changed + - CommandBox binary updated to `5.5.2` ## [5.5.1/3.5.1] - 2022-05-03 + ### Changed + - Updates `:adobe2021` tag to version `2021.0.04+330004` - Updates `:adobe2018` tag to version `2018.0.14+330003` ## [5.5.1/3.5.0] - 2022-05-03 ### Changed + - Change base images to use the [`eclipse-temurin` base images](https://hub.docker.com/_/eclipse-temurin) - Change Ubuntu version to 20.0.0 (focal) - JREs updated to `jre-11.0.15` - CommandBox binary updated to `5.5.1` ### Added + - Added `linux/arm/v7` to supported architectures for Debian-based images ## [5.4.2/3.4.5] - 2022-03-12 ### Changed + - Moved CFPM commands to after server has been fully seeded - JREs updated to `jre-11.0.14` ## [5.4.2/3.4.4] - 2021-10-05 + ### Changed + - Updates CommandBox binary to v5.4.2 ## [5.4.1/3.4.3] - 2021-09-15 ### Changed + - Updates CommandBox binary to v5.4.1 + ## [5.4.0/3.4.2] - 2021-09-15 ### Changed + - Bumped `:adobe2021` version to `2021.0.2+328618` - Bumped `:adobe2018` version to `2018.0.12+328566` - Updates CommandBox binary to v5.4.0 + ## [5.3.1/3.4.1] - 2021-06-04 ### Changed + - Bumped `:lucee5` server version to `5.3.8+189` - New builds of Adobe images contain latest `mysql-connector-jar` ### Fixed + - Fixed an issue where the `verbose` flag was not being applied to server starts ## [5.3.1/3.4.0] - 2021-06-04 @@ -341,7 +425,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Updates CommandBox binary to v5.3.1 -- Marked support for the following environment variables as deprecated, in favor of native CommandBox environment variables. Support for these variables will end in v4.0.0 of the image +- Marked support for the following environment variables as deprecated, in favor of native CommandBox environment variables. Support for these variables will end in v4.0.0 of the image -- `SERVER_HOME_DIRECTORY` ( `BOX_SERVER_APP_SERVERHOMEDIRECTORY` ) -- `cfconfigfile` ( `BOX_SERVER_CFCONFIGFILE` ) -- `CFENGINE` ( `BOX_SERVER_APP_CFENGINE` ) @@ -352,6 +436,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Eliminated random password generation on server startup, if a convention mechanism for changing was not detected. Since the server profile defaults to `production`, which disables the admin interface, this is no longer necessary ### Fixed + - Documentation updates and corrections ## [5.2.1/3.3.0] - 2021-03-24 @@ -379,6 +464,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [5.2.1/3.2.2] - 2021-03-23 ### Changed + - `:adobe2016` images to version `2016.0.17+325979` - `:adobe2018` images to version `2018.0.11+326016` - `:adobe2021` images to version `2021.0.1+325996` @@ -437,9 +523,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- (OC-4) Add handling for a `$FINALIZE_STARTUP` environment variable which will generate the final startup script to a trusted location. Once generated, this script will be authoritative for future container restarts and additional evaluation will be bypassed +- (OC-4) Add handling for a `$FINALIZE_STARTUP` environment variable which will generate the final startup script to a trusted location. Once generated, this script will be authoritative for future container restarts and additional evaluation will be bypassed - (OC-5) Sets default CommandBox rewrite rules to deny "hidden" files ( e.g. `.env` ) and common config files ( `server.json` ) -- (OC-6) Refactor `$HEADLESS` implementation in to startup routine +- (OC-6) Refactor `$HEADLESS` implementation in to startup routine - (OC-10|Issue #44) Adds supports for _FILE convention variables ## [5.0.0/2.8.1] - 2020-03-11 From 0101af6211c14d49aa88b48df7fe265acc51a7c4 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 17:17:02 +0200 Subject: [PATCH 04/16] Create dependabot.yml --- .github/dependabot.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..406173e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file +version: 2 +updates: + # GitHub Actions - updates `uses:` in workflows + - package-ecosystem: "github-actions" + directory: "/.github/workflows" # Location of .github/workflows + schedule: + interval: "weekly" + + # Docker - updates Dockerfiles and image versions + - package-ecosystem: "docker" + directory: "/builds" # Adjust if your Dockerfile is in a subfolder + schedule: + interval: "weekly" From c55c2c83abc474fcd09c068a5329c53cf9febd37 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 17:17:45 +0200 Subject: [PATCH 05/16] - Dependabot for automatic dependency updates and security fixes --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index eccbaed..aaa3396 100644 --- a/changelog.md +++ b/changelog.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - EditorConfig support for VSCode and IntelliJ - Added gitattributes file to ignore unnecessary files in git - Added markdownlint configuration and markdown lint fix +- Dependabot for automatic dependency updates and security fixes ## [6.2.0/3.13.4] - 2025-05-26 From ec7a9cf933b063c28c5eedb7d3425614f68942c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:18:29 +0200 Subject: [PATCH 06/16] Bump docker/login-action from 1 to 3 in /.github/workflows (#86) Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .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 00c9f95..164d292 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -179,7 +179,7 @@ jobs: - name: DockerHub Login if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 1318a7a959130d87f00917183cbb1d82d1af02f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:19:08 +0200 Subject: [PATCH 07/16] Merge pull request #87 from Ortus-Solutions/dependabot/github_actions/dot-github/workflows/docker/build-push-action-6 Bump docker/build-push-action from 2 to 6 in /.github/workflows --- .github/workflows/release.yml | 2 +- .github/workflows/scans.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 164d292..8b88f01 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -186,7 +186,7 @@ jobs: - name: Build Final if: github.event_name != 'pull_request' - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 env: DOCKER_BUILDKIT: 1 with: diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 29dd52f..3bcd182 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -41,7 +41,7 @@ jobs: uses: docker/setup-buildx-action@master - name: Build local container - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v6 env: DOCKER_BUILDKIT: 1 with: From 1ab364a99a1eacfade7cda45d7735020479d854d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:20:26 +0200 Subject: [PATCH 08/16] Bump actions/checkout from 2 to 4 in /.github/workflows (#88) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [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/v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pull-request.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scans.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index abcbdee..09f172a 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@v2 + uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@master diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b88f01..2417e82 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -118,7 +118,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@master diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 3bcd182..1ca69ac 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@master From 4d875e56457a67417d8415a07d2b7d6c315d7cdc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:26:12 +0200 Subject: [PATCH 09/16] Bump github/codeql-action from 2 to 3 in /.github/workflows (#89) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [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/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .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 1ca69ac..3d4b339 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -62,7 +62,7 @@ jobs: by-cve: "true" - name: Upload Anchore Report - uses: github/codeql-action/upload-sarif@v2 + uses: github/codeql-action/upload-sarif@v3 with: sarif_file: ${{ steps.securityscan.outputs.sarif }} category: "BoxLang-Runtime-${{ github.env.BRANCH }}" From e70010184a25745f3274d1319e4b97ba07b09c02 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 17:47:25 +0200 Subject: [PATCH 10/16] add license --- LICENSE | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..785c62d --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +Apache License, Version 2.0 + +Copyright Since [2005] [Luis Majano and Ortus Solutions,Corp] + +Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file From 9c379a5a30a0703b3d18f73d0f1eac436fb34d60 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 18:30:11 +0200 Subject: [PATCH 11/16] updated readme --- README.md | 139 ++++++++++++++++++++++++++---------------------------- 1 file changed, 68 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 1c1806f..9b50926 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,36 @@ -Official CommandBox Dockerfiles -========================= +# Official CommandBox Docker Images -[![Build Status](https://travis-ci.org/Ortus-Solutions/docker-commandbox.svg)](https://travis-ci.org/Ortus-Solutions/docker-commandbox) [![Docker Image Pulls Badge](https://badgen.net/docker/pulls/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) +[![GitHub License](https://badgen.net/github/license/Ortus-Solutions/docker-commandbox)](https://github.com/Ortus-Solutions/docker-commandbox?tab=License-1-ov-file#readme) +[![Docker Image Size Badge](https://badgen.net/docker/size/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) +[![Docker Image Layers Badge](https://badgen.net/docker/layers/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) +[![Docker Image Pulls Badge](https://badgen.net/docker/pulls/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) +[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/Ortus-Solutions/docker-commandbox/release.yml?branch=development)](https://github.com/Ortus-Solutions/docker-commandbox/actions) -This is the repository for official Dockerfiles for Commandbox images +Welcome to the official Docker images for [CommandBox](https://www.ortussolutions.com/products/commandbox), the BoxLang and CFML development and deployment tool from [Ortus Solutions](https://www.ortussolutions.com/). These images are designed to provide a lightweight, flexible, and powerful environment for running BoxLang and CFML applications using CommandBox as a powerful servlet container powered by [Undertow](https://undertow.io/). +All images are published to [Docker Hub](https://hub.docker.com/r/ortussolutions/commandbox). +## Features -## How it works +- **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. +- **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. +- **CommandBox Modules**: Includes popular CommandBox modules like `dotenv` and `cfconfig` for enhanced configuration management. +- **Multi-Architecture Support**: Compatible with `linux/amd64`, `linux/arm64`, and `linux/arm/v7` architectures for broad compatibility across different systems. +- **Production Ready**: Optimized for production use with features like HTTP/2 support, secure defaults, and performance enhancements. +- **Finalized Startup Scripts**: Supports multi-stage builds with finalized startup scripts to reduce container startup times by up to 80% and image size by up to 50%. +- **Extensible**: Easily extend the base images with your own custom modules or configurations. +- **Community Support**: Backed by the Ortus Solutions community, with extensive documentation and support available. -The Docker files are used to produce the `ortussolutions/commandbox` [base images on Docker Hub](https://hub.docker.com/r/ortussolutions/commandbox/tags). Leveraging CommandBox allows you to configure your entire ColdFusion CFML engine environment from a single `server.json` file in the root of your project. - -Tags -====== +## Tags _Note: For references to the specific versions of CommandBox used within image versions, [please see the Changelog](https://github.com/Ortus-Solutions/docker-commandbox/blob/main/changelog.md)._ -* `:latest` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Dockerfile)) - Latest stable version +* `:latest` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Dockerfile)) - Latest stable version * `:3.9.2` - Tagged version of the image - not to be confused with the version of CommandBox within the image * `:snapshot` - Development/BE version * `:[tag]-snapshot` - Development/BE version of a tagged variations (e.g. - `:adobe2021-snapshot`) @@ -33,25 +47,27 @@ _Note: For references to the specific versions of CommandBox used within image v * `:[engine][version]-ubi9` - RHEL ubi9 versions of the image with warmed-up engines: `:lucee5-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5.Dockerfile)), `:lucee-light-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/LuceeLight.Dockerfile)), `:lucee5-light-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5Light.Dockerfile)), `:adobe2018-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2018.Dockerfile)), `:adobe2021-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2021.Dockerfile)) -_*Note*: The `:latest` tag currently uses OpenJDK11, as do all other pre-built engine images. If you required JDK 8 or JDK 17 support in your app or engine, use the `:jdk8` or `:jdk17` tags, respectively._ - +_*Note*: The `:latest` tag currently uses OpenJDK11, as do all other pre-built engine images. If you required JDK 8 or JDK 17 support in your app or engine, use the `:jdk8` or `:jdk17` tags, respectively._ -Description -================= +## Description -CommandBox allows you to configure your entire CFML engine environment at runtime using file or environment-based conventions. For more information on how to leverage CommandBox in developing and deploying your applications, see the [official documentation](https://commandbox.ortusbooks.com/). +CommandBox is a powerful Java servlet container powered by [Undertow](https://undertow.io/), which allows you to run BoxLang and/or CFML applications in a lightweight, flexible, and production-ready environment. It is the de-facto standard of deployment for BoxLang web applications. It also supports multiple CFML engines, including Lucee and Adobe ColdFusion, and provides a rich set of features for application development and deployment. For more information on how to leverage CommandBox in developing and deploying your applications, see the [official documentation](https://commandbox.ortusbooks.com/). In addition the CommandBox modules of [`dotenv`](https://www.forgebox.io/view/commandbox-dotenv) and [`cfconfig`](https://cfconfig.ortusbooks.com/) are included in these pre-built images, which allow you to leverage additional runtime environmental and server configuration options. -Current CFML engines supported are: +## Supported Engines -- Lucee: 5+ +- [BoxLang](https://boxlang.io/) - BoxLang is a modern JVM programming language that is designed to be a powerful, expressive, and easy-to-use language for building web applications, serverless, CLI tools and more. +- Lucee CFML Engine: 5+ - Adobe ColdFusion 2018+ You may also [specify a custom WAR for deployment](https://commandbox.ortusbooks.com/embedded-server/multi-engine-support#war-support), using the `server.json` configuration. -Usage -================ +## Supported Architectures and Operating Systems + +All Debian-based images currently support `linux/amd64`, `linux/arm64` and `linux/arm/v7` architecture. Alpine builds are currently only supported on `linux/amd64` and `linux/arm64` architectures. The UBI9 builds are supported on `linux/amd64` and `linux/arm64` architectures. + +## Usage This section assumes you are using the [Official Docker Image](https://hub.docker.com/r/ortussolutions/commandbox/) @@ -64,7 +80,7 @@ docker pull ortussolutions/commandbox Then, from the root of your project, start with ``` -docker run -p 8080:8080 -p 8443:8443 -v "/path/to/your/app:/app" ortussolutions/commandbox +docker run -p 8080:8080 -p 8443:8443 -v "/path/to/your/app:/app" ortussolutions/commandbox ``` By default the process ports of the container are `8080` (insecure) and `8443` (secure - if enabled in your `server.json`) so, once the container comes online, you may access your application via browser using the applicable port (which we explicitly exposed for external access in the `run` command above). You may also specify different port arguments in your `run` command to assign what is to be used in the container and exposed. This prevents conflicts with other instances in the Docker machine using those ports: @@ -73,36 +89,29 @@ By default the process ports of the container are `8080` (insecure) and `8443` ( docker run -p 80:80 -p 443:443 -e "PORT=80" -e "SSL_PORT=443" -v "/path/to/your/app:/app" ortussolutions/commandbox ``` -Supported Architectures and Operating Systems -============================================= - -All Debian-based images currently support `linux/amd64`, `linux/arm64` and `linux/arm/v7` architecture. Alpine builds are currently only supported on `linux/amd64` - -Environment Variables -===================== +## Environment Variables The CommandBox Docker image supports the use of environmental variables for the configuration of your servers. Specifically, the image includes the [`cfconfig` CommandBox module](https://www.forgebox.io/view/commandbox-cfconfig), which allows you to provide custom settings for your engine, including the admin password. -### Port Variables +## Port Variables -* `$PORT` - The port which your server should start on. The default is `8080`. -* `$SSL_PORT` - If applicable, the ssl port used by your server The default is `8443`. +- `$PORT` - The port which your server should start on. The default is `8080`. +- `$SSL_PORT` - If applicable, the ssl port used by your server The default is `8443`. -### Load Balancer Configuration +## Load Balancer Configuration In order to use the [multi-site features](https://commandbox.ortusbooks.com/embedded-server/multi-site-support) of CommandBox v6 and above, if your multi-site setup is domain-aware, you will need to set [the environment variable](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/proxy-ip) `BOX_SERVER_WEB_useProxyForwardedIP=true`. Note, though, that doing so will open your container up to threat vectors by providing visitors with the ability to circumvent: -* Internal-only host matching -* IP restrictions on admin blocking - -as well as potentially allowing the spoofing of client certs and/or SSL redirects/validation. Because of this, if you choose to enable this setting, you should take care to ensure that your containers are _only publicly accessible via the load balancer_ and exposed container ports on the Docker host are not publicly available. Once this setting is enabled, however, headers such as `X-Forwarded-Host` sent by the upstream load balancer will be honored when service multi-site traffic. +- Internal-only host matching +- IP restrictions on admin blocking +As well as potentially allowing the spoofing of client certs and/or SSL redirects/validation. Because of this, if you choose to enable this setting, you should take care to ensure that your containers are _only publicly accessible via the load balancer_ and exposed container ports on the Docker host are not publicly available. Once this setting is enabled, however, headers such as `X-Forwarded-Host` sent by the upstream load balancer will be honored when service multi-site traffic. -### HTTP/2 Support +## HTTP/2 Support As of Commandbox `v5.3.0`, all CommandBox servers have HTTP/2 enabled by default. For browser support of this protocol, you will need to enable SSL and provide a certificate. -### Server Configuration Variables +## Server Configuration Variables The following environment variables may be provided to modify your runtime server configuration. Please note that environment variables are case sensitive and, while some lower/upper case aliases are accounted for, you should use consistent casing in order for these variables to take effect. @@ -110,9 +119,9 @@ The following environment variables may be provided to modify your runtime serve * `APP_DIR` - Application directory (web root). By default, this is `/app`. If you are deploying an application with mappings outside of the root, you would want to provide this environment variable to point to the webroot ( e.g. `/app/wwwroot` ) * `USER` - When provided the server process will run under the provided user account name * `USER_ID` - Numeric. When provided in conjunction with a `USER` environment variable, the UID of the user will be assigned this number. This can be useful for ensuring permissions of mounted volumes and files -* `cfconfig_[engine setting]` - Any environment variable provided which includes the `cfconfig_` prefix will be determined to be a `cfconfig` setting and the value after the prefix is presumed to be the setting name. -* `BOX_SERVER_CFCONFIGFILE` - A `cfconfig`-compatible JSON file may be provided with this environment variable. The file will be loaded and applied to your server. If an `adminPassword` key exists, it will be applied as the Server and Web context passwords for Lucee engines. You may instead add a `.cfconfig.json` file to the root of the `APP_DIR` and it will be picked up automatically. -* `BOX_SERVER_APP_CFENGINE` - Using the `server.json` syntax, allows you to specify the CFML engine for your container ( e.g. `lucee@5` ). Defaults to the CommandBox default ( currently `lucee@4.5`) +* `cfconfig_[engine setting]` - Any environment variable provided which includes the `cfconfig_` prefix will be determined to be a `cfconfig` setting and the value after the prefix is presumed to be the setting name. +* `BOX_SERVER_CFCONFIGFILE` - A `cfconfig`-compatible JSON file may be provided with this environment variable. The file will be loaded and applied to your server. If an `adminPassword` key exists, it will be applied as the Server and Web context passwords for Lucee engines. You may instead add a `.cfconfig.json` file to the root of the `APP_DIR` and it will be picked up automatically. +* `BOX_SERVER_APP_CFENGINE` - Using the `server.json` syntax, allows you to specify the CFML engine for your container ( e.g. `lucee@5` ). Defaults to the CommandBox default ( currently `lucee@4.5`) * `BOX_SERVER_RUNWAR_CONSOLE_APPENDERLAYOUT` - When setting this to `JSONTemplateLayout`, the log output of the container will be in [`ndjson`](http://ndjson.org/). For more information on this setting, please see [the CommandBox documentation on customizing log layouts](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/console-log-layout#customize-layout) * `FINALIZE_STARTUP` - When provided a final startup script will be generated, which will be considered authoritative the next time the container/image starts. The caveat to this, however, is that the finalized startup script will bypass the evaluation checks for all of the other environment variables in this list as those values will be explicitly exported in the startup file. * `BOX_SERVER_PROFILE` - When set, this will be applied as the runtime [CommandBox server profile](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/server-profiles). By default, CommandBox will set this value to the `production` mode, since the container server binds to all interfaces on `0.0.0.0`. If you wish a lower level of security, you will need to provide this variable or set it in your `server.json` file. @@ -135,13 +144,12 @@ The following variables are still supported, however they are deprecated and sup * `SERVER_PROFILE` - Use `BOX_SERVER_PROFILE` instead * `URL_REWRITES`/`url_rewrites` - Use `BOX_SERVER_WEB_REWRITES_ENABLE` instead -Docker Secrets -============== +## Docker Secrets [Docker secrets](https://docs.docker.com/engine/swarm/secrets/) can use two storage mechanisms: -* Secret values stored as files on the host (non-swarm mode). -* `docker secret`-managed key/value pairs (swarm mode). +- Secret values stored as files on the host (non-swarm mode). +- `docker secret`-managed key/value pairs (swarm mode). Secret expansion can be accomplished by one of two mechanisms ( or both ): @@ -163,7 +171,7 @@ services: # this is a placeholder that will be replaced at runtime with the secret value - TEST_DOCKER_SECRET=<> ... - + secrets: test_docker_secret: # this is the file containing the secret value @@ -177,8 +185,7 @@ When any environment variable is suffixed with `_FILE`, the right-hand assignmen For example the variable `REINIT_PASSWORD_FILE=/run/secrets/reinit_password` would source the contents of the right-hand file path in as the `REINIT_PASSWORD` environment variable. -Best Practices and Customization -================================ +## Best Practices and Customization ### Customizing Images @@ -205,11 +212,11 @@ REDIS_EXTENSION_SERVER_TYPE=Production RUN ${BUILD_DIR}/util/warmup-server.sh ``` -We recommend using the pre-tagged images as your base, rather than starting from scratch. +We recommend using the pre-tagged images as your base, rather than starting from scratch. ### Optimizing Startup Times -Because, with the exception of the CommandBox default engine of Lucee 5, the CFML server engines are downloaded and installed at container runtime. This can result in significant startup time increases ( even with Lucee 5 already downloaded in the base image, there is a time penalty for a "cold start" ). It is recommended that builds for production use employ an engine-specific variation for the build, which ensures the server is downloaded, in place, and warmed up on container start. +Because, with the exception of the CommandBox default engine of Lucee 5, the CFML server engines are downloaded and installed at container runtime. This can result in significant startup time increases ( even with Lucee 5 already downloaded in the base image, there is a time penalty for a "cold start" ). It is recommended that builds for production use employ an engine-specific variation for the build, which ensures the server is downloaded, in place, and warmed up on container start. For a basic example, the following will suffice: @@ -248,10 +255,9 @@ ENV HEALTHCHECK_URI "http://127.0.0.1:${PORT}/config/Routes.cfm" In the above case, the `setup-env.sh` file might perform an additional server warmup and validation, where in the former case, the server was previously warmed up when the image was built. -Once your customized `Dockerfile` has has been built, you can run the generated image directly, or publish it to a [private registry](https://docs.docker.com/registry/) - +Once your customized `Dockerfile` has has been built, you can run the generated image directly, or publish it to a [private registry](https://docs.docker.com/registry/) -#### Multi-Stage Builds +### Multi-Stage Builds As of v3.0.0 of the image you can create multi-stage builds which include only a shell script to start the server, the RunWar servlet container, and the application/engine. _This build is finalized, however, so the startup script will bypass all environmental and server evaluation in favor of the variables provided in the generated shell script._ This means that you will need to provide all secrets and variables needed by your server and CFConfig files during the initial build phase, as the `.env` and `.cfconfig.json` files will not be in play during the server startup. @@ -266,7 +272,7 @@ FROM ortussolutions/commandbox:lucee5 as workbench ENV FINALIZE_STARTUP true RUN $BUILD_DIR/run.sh -# Eclipse Temurin Focal image is the smallest OpenJDK image on that the same kernel used in the base image. +# Eclipse Temurin Focal image is the smallest OpenJDK image on that the same kernel used in the base image. # For most apps, this should work to run your applications FROM eclipse-temurin:11-jre-jammy as app @@ -290,7 +296,7 @@ HEALTHCHECK --interval=20s --timeout=30s --retries=15 CMD curl --fail ${HEALTHCH CMD /usr/local/bin/run.sh ``` -#### Single-Stage With Script Finalization +### Single-Stage With Script Finalization You may also create this finalized startup script in a single-stage build: @@ -303,36 +309,27 @@ RUN export FINALIZE_STARTUP=true;$BUILD_DIR/run.sh;unset FINALIZE_STARTUP This created image will contain the authoritative script with its runtime benefits and caveats ( see above ). Unlike the multi-stage build above, however , secret expansion will take place prior to image start, with the caveat that _any environment variables in existence when the finalized script was generated will overwrite the runtime-provided variables or secrets_. - -About CommandBox -================ - -*CommandBox* is a standalone, native, [modular](https://www.forgebox.io/type/commandbox-modules) CFML development and deployment tool for Windows, Mac, and Linux which provides a CLI for server orchestration, developer productivity, tool interaction, package management, application scaffolding, and some sweet ASCII art. -It is open for extensibility for any ColdFusion (CFML) project and is written in CFML, allowing developers to easily write their own [modules](https://www.forgebox.io/type/commandbox-modules). It tightly integrates with the CFML open source hub [ForgeBox](https://www.forgebox.io/), so developers can share modules world-wide. - -[Learn more about CommandBox](https://www.ortussolutions.com/products/commandbox) - - -Issues -================ +## Issues Please submit issues to our repository: [https://github.com/Ortus-Solutions/docker-commandbox/issues](https://github.com/Ortus-Solutions/docker-commandbox/issues) ## LICENSE -Apache License, Version 2.0. + +This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).
-#### HONOR GOES TO GOD ABOVE ALL +## HONOR GOES TO GOD ABOVE ALL + Because of His grace, this project exists. If you don't like this, then don't read it, it's not for you. >"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: -And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the +And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5 -#### THE DAILY BREAD +### THE DAILY BREAD + > "I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12 -fv From 9779bc767f146c5508f16930274e3f2b3e2e79a0 Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 18:36:46 +0200 Subject: [PATCH 12/16] more wip on readme --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 9b50926..0a9d2da 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ # Official CommandBox Docker Images -[![GitHub License](https://badgen.net/github/license/Ortus-Solutions/docker-commandbox)](https://github.com/Ortus-Solutions/docker-commandbox?tab=License-1-ov-file#readme) -[![Docker Image Size Badge](https://badgen.net/docker/size/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) -[![Docker Image Layers Badge](https://badgen.net/docker/layers/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) [![Docker Image Pulls Badge](https://badgen.net/docker/pulls/ortussolutions/commandbox)](https://hub.docker.com/r/ortussolutions/commandbox/) [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/Ortus-Solutions/docker-commandbox/release.yml?branch=development)](https://github.com/Ortus-Solutions/docker-commandbox/actions) +[![GitHub License](https://badgen.net/github/license/Ortus-Solutions/docker-commandbox)](https://github.com/Ortus-Solutions/docker-commandbox?tab=License-1-ov-file#readme) Welcome to the official Docker images for [CommandBox](https://www.ortussolutions.com/products/commandbox), the BoxLang and CFML development and deployment tool from [Ortus Solutions](https://www.ortussolutions.com/). These images are designed to provide a lightweight, flexible, and powerful environment for running BoxLang and CFML applications using CommandBox as a powerful servlet container powered by [Undertow](https://undertow.io/). From 95c296394def8b07c4a976a7b4502bbbf006b31f Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 19:22:47 +0200 Subject: [PATCH 13/16] completed new docs --- README.md | 627 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 555 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 0a9d2da..ca99ef9 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,33 @@ Welcome to the official Docker images for [CommandBox](https://www.ortussolution All images are published to [Docker Hub](https://hub.docker.com/r/ortussolutions/commandbox). +## Table of Contents + +- [Features](#features) +- [Available Tags](#available-tags) + - [Quick Reference](#quick-reference) + - [Base Images](#base-images-no-engine-pre-installed) + - [Pre-Built Engine Images](#pre-built-engine-images-warmed-up) + - [Choosing the Right Tag](#choosing-the-right-tag) +- [Description](#description) +- [Supported Engines](#supported-engines) +- [Supported Architectures and Operating Systems](#supported-architectures-and-operating-systems) +- [Usage](#usage) +- [Environment Variables](#environment-variables) +- [Port Variables](#port-variables) +- [Load Balancer Configuration](#load-balancer-configuration) +- [HTTP/2 Support](#http2-support) +- [Server Configuration Variables](#server-configuration-variables) +- [Docker Secrets](#docker-secrets) +- [Quick Start Examples](#quick-start-examples) +- [Docker Compose Examples](#docker-compose-examples) +- [Configuration Examples](#configuration-examples) +- [Troubleshooting](#troubleshooting) +- [Best Practices and Customization](#best-practices-and-customization) +- [Security Considerations](#security-considerations) +- [Issues](#issues) +- [License](#license) + ## Features - **Multi-Engine Support**: Run BoxLang Applications or CFML engines, including Lucee and Adobe ColdFusion, in a single container. @@ -24,28 +51,128 @@ All images are published to [Docker Hub](https://hub.docker.com/r/ortussolutions - **Extensible**: Easily extend the base images with your own custom modules or configurations. - **Community Support**: Backed by the Ortus Solutions community, with extensive documentation and support available. -## Tags +## Available Tags _Note: For references to the specific versions of CommandBox used within image versions, [please see the Changelog](https://github.com/Ortus-Solutions/docker-commandbox/blob/main/changelog.md)._ -* `:latest` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Dockerfile)) - Latest stable version -* `:3.9.2` - Tagged version of the image - not to be confused with the version of CommandBox within the image -* `:snapshot` - Development/BE version -* `:[tag]-snapshot` - Development/BE version of a tagged variations (e.g. - `:adobe2021-snapshot`) -* `:jdk8` - Base image using OpenJDK8 -* `:jre11` - Base image using OpenJDK11 JRE -* `:jdk11` - Base image using OpenJDK11 full JDK -* `:jre17` - Base image using OpenJDK17 JRE -* `:jdk17` - Base image using OpenJDK17 full JDK -* `:alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.Dockerfile)) - [Alpine Linux](https://alpinelinux.org/about/) version of the image - slight decrease in overall size and optimizations for containerized runtimes -* `:ubi9` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/ubi9.Dockerfile)) - [RHEL Universal Base Image](https://catalog.redhat.com/software/containers/ubi9/ubi/615bcf606feffc5384e8452e) version of the image -* `:[engine][version]` - Containers with warmed-up engines - saves having to download the server WAR during container start: `:lucee5`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee5.Dockerfile)), `:lucee-light`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/LuceeLight.Dockerfile)), `:lucee5-light`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee5Light.Dockerfile)), `:adobe2018`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2018.Dockerfile)), `:adobe2021`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2021.Dockerfile)), `:adobe2023`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2023.Dockerfile)) -* `:[engine][version]-alpine` - Alpine linux versions of the image with warmed-up engines: -`:lucee5-alpine`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Lucee5.Dockerfile)), `:lucee-light-alpine`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/LuceeLight.Dockerfile)), `:lucee5-light-alpine`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Lucee5Light.Dockerfile)), `:adobe2018-alpine`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2018.Dockerfile)), `:adobe2021-alpine`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2021.Dockerfile)) -* `:[engine][version]-ubi9` - RHEL ubi9 versions of the image with warmed-up engines: -`:lucee5-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5.Dockerfile)), `:lucee-light-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/LuceeLight.Dockerfile)), `:lucee5-light-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Lucee5Light.Dockerfile)), `:adobe2018-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2018.Dockerfile)), `:adobe2021-ubi9`([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/ubi9/Adobe2021.Dockerfile)) - -_*Note*: The `:latest` tag currently uses OpenJDK11, as do all other pre-built engine images. If you required JDK 8 or JDK 17 support in your app or engine, use the `:jdk8` or `:jdk17` tags, respectively._ +### Quick Reference + +| Tag | Description | Base OS | JDK Version | +|-----|-------------|---------|-------------| +| `:latest` | Latest stable CommandBox | Debian | JDK 11 | +| `:snapshot` | Development/bleeding edge | Debian | JDK 11 | +| `:boxlang` | BoxLang runtime ready | Debian | JDK 21 | +| `:lucee6` | Lucee 6.x warmed up | Debian | JDK 11 | +| `:adobe2025` | Adobe ColdFusion 2025 | Debian | JDK 21 | + +### Base Images (No Engine Pre-installed) + +#### Standard Debian-based Images + +- `:latest` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Dockerfile)) - Latest stable version (JDK 11) +- `:snapshot` - Development/bleeding edge version +- `: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`) +- `:[tag]-snapshot` - Development version of tagged variations + +#### JDK/JRE Variants (Debian) + +- `:jdk8` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK8.Dockerfile)) - OpenJDK 8 +- `:jdk11` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK11.Dockerfile)) - OpenJDK 11 (default) +- `:jre17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JRE17.Dockerfile)) - OpenJDK 17 JRE +- `:jdk17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK17.Dockerfile)) - OpenJDK 17 JDK +- `:jdk21` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK21.Dockerfile)) - OpenJDK 21 JDK +- `:jdk23` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK23.Dockerfile)) - OpenJDK 23 JDK +- `:jdk24` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/JDK24.Dockerfile)) - OpenJDK 24 JDK + +#### Alpine Linux Variants + +- `:alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.Dockerfile)) - Alpine Linux (JDK 11) +- `:alpine-jdk8` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.JDK8.Dockerfile)) - Alpine with JDK 8 +- `:alpine-jdk11` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.JDK11.Dockerfile)) - Alpine with JDK 11 +- `:alpine-jre17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.JRE17.Dockerfile)) - Alpine with JRE 17 +- `:alpine-jdk17` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.JDK17.Dockerfile)) - Alpine with JDK 17 +- `:alpine-jdk21` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/base/Alpine.JDK21.Dockerfile)) - Alpine with JDK 21 + +#### 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 + +### Pre-Built Engine Images (Warmed Up) + +These images include pre-downloaded and warmed-up engines to significantly reduce startup times. + +#### BoxLang Runtime + +- `: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 + +#### Lucee CFML Engine + +**Debian-based Lucee Images:** + +- `:lucee4` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee4.Dockerfile)) - Lucee 4.x +- `:lucee5` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee5.Dockerfile)) - Lucee 5.x +- `:lucee6` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee6.Dockerfile)) - Lucee 6.x +- `:lucee-light` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/LuceeLight.Dockerfile)) - Lucee Light (latest) +- `:lucee5-light` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Lucee5Light.Dockerfile)) - Lucee 5.x Light + +**Alpine-based Lucee Images:** + +- `:lucee5-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Lucee5.Dockerfile)) - Lucee 5.x on Alpine +- `:lucee6-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Lucee6.Dockerfile)) - Lucee 6.x on Alpine +- `:lucee-light-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/LuceeLight.Dockerfile)) - Lucee Light on Alpine +- `:lucee5-light-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Lucee5Light.Dockerfile)) - Lucee 5.x Light on Alpine + +**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 + +#### Adobe ColdFusion Engine + +**Debian-based Adobe Images:** + +- `:adobe11` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe11.Dockerfile)) - Adobe ColdFusion 11 +- `:adobe2016` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2016.Dockerfile)) - Adobe ColdFusion 2016 +- `:adobe2018` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2018.Dockerfile)) - Adobe ColdFusion 2018 +- `:adobe2021` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2021.Dockerfile)) - Adobe ColdFusion 2021 +- `:adobe2023` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2023.Dockerfile)) - Adobe ColdFusion 2023 +- `:adobe2025` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/debian/Adobe2025.Dockerfile)) - Adobe ColdFusion 2025 + +**Alpine-based Adobe Images:** + +- `:adobe2018-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2018.Dockerfile)) - Adobe ColdFusion 2018 on Alpine +- `:adobe2021-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2021.Dockerfile)) - Adobe ColdFusion 2021 on Alpine +- `:adobe2023-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2023.Dockerfile)) - Adobe ColdFusion 2023 on Alpine +- `:adobe2025-alpine` ([Dockerfile](https://github.com/Ortus-Solutions/docker-commandbox/blob/master/builds/alpine/Adobe2025.Dockerfile)) - Adobe ColdFusion 2025 on Alpine + +**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 + +### Choosing the Right Tag + +- **For BoxLang applications**: Use `:boxlang` variants +- **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 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._ ## Description @@ -111,36 +238,36 @@ As of Commandbox `v5.3.0`, all CommandBox servers have HTTP/2 enabled by default ## Server Configuration Variables -The following environment variables may be provided to modify your runtime server configuration. Please note that environment variables are case sensitive and, while some lower/upper case aliases are accounted for, you should use consistent casing in order for these variables to take effect. - -* `BOX_SERVER_APP_SERVERHOMEDIRECTORY` - When provided, a custom path to your server home directory will be assigned. By default, this path is set as `${LIB_DIR}/serverHome`, which resolves to `/usr/local/lib/serverHome` in most builds. The Alpine-based builds will default to `/usr/lib/serverHome`. ( _Note: You may also provide this variable in your app's customized `server.json` file_ ) -* `APP_DIR` - Application directory (web root). By default, this is `/app`. If you are deploying an application with mappings outside of the root, you would want to provide this environment variable to point to the webroot ( e.g. `/app/wwwroot` ) -* `USER` - When provided the server process will run under the provided user account name -* `USER_ID` - Numeric. When provided in conjunction with a `USER` environment variable, the UID of the user will be assigned this number. This can be useful for ensuring permissions of mounted volumes and files -* `cfconfig_[engine setting]` - Any environment variable provided which includes the `cfconfig_` prefix will be determined to be a `cfconfig` setting and the value after the prefix is presumed to be the setting name. -* `BOX_SERVER_CFCONFIGFILE` - A `cfconfig`-compatible JSON file may be provided with this environment variable. The file will be loaded and applied to your server. If an `adminPassword` key exists, it will be applied as the Server and Web context passwords for Lucee engines. You may instead add a `.cfconfig.json` file to the root of the `APP_DIR` and it will be picked up automatically. -* `BOX_SERVER_APP_CFENGINE` - Using the `server.json` syntax, allows you to specify the CFML engine for your container ( e.g. `lucee@5` ). Defaults to the CommandBox default ( currently `lucee@4.5`) -* `BOX_SERVER_RUNWAR_CONSOLE_APPENDERLAYOUT` - When setting this to `JSONTemplateLayout`, the log output of the container will be in [`ndjson`](http://ndjson.org/). For more information on this setting, please see [the CommandBox documentation on customizing log layouts](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/console-log-layout#customize-layout) -* `FINALIZE_STARTUP` - When provided a final startup script will be generated, which will be considered authoritative the next time the container/image starts. The caveat to this, however, is that the finalized startup script will bypass the evaluation checks for all of the other environment variables in this list as those values will be explicitly exported in the startup file. -* `BOX_SERVER_PROFILE` - When set, this will be applied as the runtime [CommandBox server profile](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/server-profiles). By default, CommandBox will set this value to the `production` mode, since the container server binds to all interfaces on `0.0.0.0`. If you wish a lower level of security, you will need to provide this variable or set it in your `server.json` file. -* `BOX_SERVER_WEB_REWRITES_ENABLE` - A boolean value, specifying whether URL rewrites will be enabled/disabled on the server. Setting this environment variable will overwrite any settings within the app's `server.json` file. -* `CFPM_INSTALL` and `CFPM_UNINSTALL` - Supported for Adobe Coldfusion 2021 engines. When provided as a delimited list of [Coldfusion Package Manager](https://helpx.adobe.com/coldfusion/using/coldfusion-package-manager.html) packages, these will be installed ( or uninstalled, respectively ), prior to the server start. A warmed-up server is required to use these variables. -* `BOX_INSTALL`/`box_install` - When set to true, the `box install` command will be run before the server is started to ensure any dependencies configured in your `box.json` file are installed +The following environment variables may be provided to modify your runtime server configuration. Please note that environment variables are case sensitive and, while some lower/upper case aliases are accounted for, you should use consistent casing in order for these variables to take effect. + +- `BOX_SERVER_APP_SERVERHOMEDIRECTORY` - When provided, a custom path to your server home directory will be assigned. By default, this path is set as `${LIB_DIR}/serverHome`, which resolves to `/usr/local/lib/serverHome` in most builds. The Alpine-based builds will default to `/usr/lib/serverHome`. (_Note: You may also provide this variable in your app's customized `server.json` file_) +- `APP_DIR` - Application directory (web root). By default, this is `/app`. If you are deploying an application with mappings outside of the root, you would want to provide this environment variable to point to the webroot (e.g. `/app/wwwroot`) +- `USER` - When provided the server process will run under the provided user account name +- `USER_ID` - Numeric. When provided in conjunction with a `USER` environment variable, the UID of the user will be assigned this number. This can be useful for ensuring permissions of mounted volumes and files +- `cfconfig_[engine setting]` - Any environment variable provided which includes the `cfconfig_` prefix will be determined to be a `cfconfig` setting and the value after the prefix is presumed to be the setting name. +- `BOX_SERVER_CFCONFIGFILE` - A `cfconfig`-compatible JSON file may be provided with this environment variable. The file will be loaded and applied to your server. If an `adminPassword` key exists, it will be applied as the Server and Web context passwords for Lucee engines. You may instead add a `.cfconfig.json` file to the root of the `APP_DIR` and it will be picked up automatically. +- `BOX_SERVER_APP_CFENGINE` - Using the `server.json` syntax, allows you to specify the CFML engine for your container (e.g. `lucee@5`). Defaults to the CommandBox default (currently `lucee@4.5`) +- `BOX_SERVER_RUNWAR_CONSOLE_APPENDERLAYOUT` - When setting this to `JSONTemplateLayout`, the log output of the container will be in [`ndjson`](http://ndjson.org/). For more information on this setting, please see [the CommandBox documentation on customizing log layouts](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/console-log-layout#customize-layout) +- `FINALIZE_STARTUP` - When provided a final startup script will be generated, which will be considered authoritative the next time the container/image starts. The caveat to this, however, is that the finalized startup script will bypass the evaluation checks for all of the other environment variables in this list as those values will be explicitly exported in the startup file. +- `BOX_SERVER_PROFILE` - When set, this will be applied as the runtime [CommandBox server profile](https://commandbox.ortusbooks.com/embedded-server/configuring-your-server/server-profiles). By default, CommandBox will set this value to the `production` mode, since the container server binds to all interfaces on `0.0.0.0`. If you wish a lower level of security, you will need to provide this variable or set it in your `server.json` file. +- `BOX_SERVER_WEB_REWRITES_ENABLE` - A boolean value, specifying whether URL rewrites will be enabled/disabled on the server. Setting this environment variable will overwrite any settings within the app's `server.json` file. +- `CFPM_INSTALL` and `CFPM_UNINSTALL` - Supported for Adobe Coldfusion 2021+ engines. When provided as a delimited list of [Coldfusion Package Manager](https://helpx.adobe.com/coldfusion/using/coldfusion-package-manager.html) packages, these will be installed (or uninstalled, respectively), prior to the server start. A warmed-up server is required to use these variables. +- `BOX_INSTALL`/`box_install` - When set to true, the `box install` command will be run before the server is started to ensure any dependencies configured in your `box.json` file are installed ### Docker Runtime Variables -* `$HEALTHCHECK_URI` - Specifies the URI endpoint for container [health checks](https://docs.docker.com/engine/reference/builder/#healthcheck). By default, this defaults to `http://127.0.0.1:${PORT}/` at 20 second intervals, a timeout of 30 seconds, with 15 retries before the container is marked as failed. _Note: Since the interval, timeout, and retry settings cannot be set dynamically, if you need to adjust these, you will need to build from a Dockerfile which provides a new [`HEALTHCHECK` command](https://docs.docker.com/engine/reference/builder/#healthcheck) +- `$HEALTHCHECK_URI` - Specifies the URI endpoint for container [health checks](https://docs.docker.com/engine/reference/builder/#healthcheck). By default, this defaults to `http://127.0.0.1:${PORT}/` at 20 second intervals, a timeout of 30 seconds, with 15 retries before the container is marked as failed. _Note: Since the interval, timeout, and retry settings cannot be set dynamically, if you need to adjust these, you will need to build from a Dockerfile which provides a new [`HEALTHCHECK` command](https://docs.docker.com/engine/reference/builder/#healthcheck)_ ### Deprecated Environment Variables The following variables are still supported, however they are deprecated and support will be removed in the next major release version of the image: -* `SERVER_HOME_DIRECTORY` - Use `BOX_SERVER_APP_SERVERHOMEDIRECTORY` instead -* `CFCONFIG` and `cfconfigfile` - Use `BOX_SERVER_CFCONFIGFILE` instead -* `CFENGINE` - Use `BOX_SERVER_APP_CFENGINE` instead -* `HEADLESS=true` - Use `BOX_SERVER_PROFILE=production` instead -* `SERVER_PROFILE` - Use `BOX_SERVER_PROFILE` instead -* `URL_REWRITES`/`url_rewrites` - Use `BOX_SERVER_WEB_REWRITES_ENABLE` instead +- `SERVER_HOME_DIRECTORY` - Use `BOX_SERVER_APP_SERVERHOMEDIRECTORY` instead +- `CFCONFIG` and `cfconfigfile` - Use `BOX_SERVER_CFCONFIGFILE` instead +- `CFENGINE` - Use `BOX_SERVER_APP_CFENGINE` instead +- `HEADLESS=true` - Use `BOX_SERVER_PROFILE=production` instead +- `SERVER_PROFILE` - Use `BOX_SERVER_PROFILE` instead +- `URL_REWRITES`/`url_rewrites` - Use `BOX_SERVER_WEB_REWRITES_ENABLE` instead ## Docker Secrets @@ -183,28 +310,384 @@ When any environment variable is suffixed with `_FILE`, the right-hand assignmen For example the variable `REINIT_PASSWORD_FILE=/run/secrets/reinit_password` would source the contents of the right-hand file path in as the `REINIT_PASSWORD` environment variable. +## Quick Start Examples + +### BoxLang Application + +```bash +# Pull and run BoxLang image +docker run -p 8080:8080 -v "$(pwd):/app" ortussolutions/commandbox:boxlang +``` + +### Lucee Application with Custom Admin Password + +```bash +docker run -p 8080:8080 \ + -e "cfconfig_adminPassword=mySecretPassword" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:lucee6 +``` + +### Adobe ColdFusion with SSL + +```bash +docker run -p 8080:8080 -p 8443:8443 \ + -e "BOX_SERVER_WEB_REWRITES_ENABLE=true" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:adobe2025 +``` + +### Development with Auto-reload + +```bash +docker run -p 8080:8080 \ + -e "BOX_SERVER_PROFILE=development" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:snapshot +``` + +## Docker Compose Examples + +### Basic Application Stack + +```yaml +version: '3.8' +services: + app: + image: ortussolutions/commandbox:lucee6 + ports: + - "8080:8080" + volumes: + - .:/app + environment: + - cfconfig_adminPassword=admin123 + - BOX_SERVER_WEB_REWRITES_ENABLE=true +``` + +### Multi-Service Application with Database + +```yaml +version: '3.8' +services: + app: + image: ortussolutions/commandbox:adobe2025 + ports: + - "8080:8080" + volumes: + - .:/app + environment: + - cfconfig_adminPassword=admin123 + - BOX_SERVER_PROFILE=production + depends_on: + - db + + db: + image: mysql:8.0 + environment: + MYSQL_ROOT_PASSWORD: rootpass + MYSQL_DATABASE: myapp + MYSQL_USER: appuser + MYSQL_PASSWORD: apppass + volumes: + - db_data:/var/lib/mysql + +volumes: + db_data: +``` + +## Configuration Examples + +### Server.json Configuration + +Create a `server.json` in your application root for advanced configuration: + +```json +{ + "app": { + "cfengine": "boxlang@1.0.0" + }, + "web": { + "http": { + "port": 8080 + }, + "ssl": { + "enable": true, + "port": 8443 + }, + "rewrites": { + "enable": true + } + }, + "runwar": { + "args": "--enable-http2" + } +} +``` + +### CFConfig Integration + +Create a `.cfconfig.json` file for engine-specific settings: + +```json +{ + "adminPassword": "secure123", + "requestTimeoutEnabled": true, + "requestTimeout": "0,0,5,0", + "datasources": { + "myDS": { + "class": "com.mysql.cj.jdbc.Driver", + "connectionString": "jdbc:mysql://db:3306/myapp", + "username": "appuser", + "password": "apppass" + } + } +} +``` + +### Environment File (.env) + +Use a `.env` file for easier environment management: + +```env +# Server Configuration +PORT=8080 +SSL_PORT=8443 +BOX_SERVER_PROFILE=production + +# Engine Configuration +BOX_SERVER_APP_CFENGINE=lucee@6 + +# CFConfig Settings +cfconfig_adminPassword=mySecretPassword +cfconfig_requestTimeoutEnabled=true + +# Application Settings +APP_DIR=/app +BOX_SERVER_WEB_REWRITES_ENABLE=true +``` + +## Troubleshooting + +### Common Issues + +#### Container Exits Immediately + +**Problem**: Container starts and immediately exits. + +**Solutions**: + +- Check if port 8080 is already in use: `docker run -p 8081:8080 ...` +- Verify your application has an `index.cfm` or `index.bxm` file +- Check container logs: `docker logs ` + +#### Permission Denied Errors + +**Problem**: Application files cannot be read or written. + +**Solutions**: + +- Set the correct user: `-e "USER_ID=$(id -u)" -e "USER=$(whoami)"` +- Check file permissions on the host system +- Use absolute paths for volume mounts + +#### Engine Download Failures + +**Problem**: CFML engine fails to download. + +**Solutions**: + +- Use pre-warmed images (e.g., `:lucee6`, `:adobe2025`) +- Check internet connectivity from container +- Try a different engine version: `-e "BOX_SERVER_APP_CFENGINE=lucee@5.4.6"` + +#### Memory Issues + +**Problem**: Application runs out of memory. + +**Solutions**: + +- Increase Docker memory limits: `docker run -m 2g ...` +- Use JVM arguments: `-e "JAVA_OPTS=-Xmx2g -Xms512m"` +- Monitor memory usage: `docker stats ` + +### Debugging Commands + +```bash +# View container logs +docker logs -f + +# Access container shell +docker exec -it /bin/bash + +# Check Java processes +docker exec ps aux | grep java + +# View CommandBox server info +docker exec box server info + +# Check disk usage +docker exec df -h +``` + +### Performance Tuning + +#### JVM Settings + +```bash +# Optimize JVM for container environments +docker run -p 8080:8080 \ + -e "JAVA_OPTS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:lucee6 +``` + +#### CommandBox Settings + +```bash +# Enable performance optimizations +docker run -p 8080:8080 \ + -e "BOX_SERVER_PROFILE=production" \ + -e "BOX_SERVER_RUNWAR_ARGS=--enable-http2 --nio-enable" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:adobe2025 +``` + +## Security Considerations + +### Production Deployment + +When deploying CommandBox containers in production, consider the following security best practices: + +#### Network Security + +```bash +# Use specific network configurations +docker network create --driver bridge commandbox-net +docker run --network commandbox-net -p 8080:8080 ortussolutions/commandbox:adobe2025 +``` + +#### User Management + +```bash +# Run as non-root user +docker run -p 8080:8080 \ + -e "USER=appuser" \ + -e "USER_ID=1000" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:lucee6 +``` + +#### Environment Variables and Secrets + +```yaml +# Use Docker secrets for sensitive data +version: '3.8' +services: + app: + image: ortussolutions/commandbox:adobe2025 + secrets: + - admin_password + - db_password + environment: + - cfconfig_adminPassword_FILE=/run/secrets/admin_password + - DB_PASSWORD_FILE=/run/secrets/db_password + +secrets: + admin_password: + file: ./secrets/admin_password.txt + db_password: + file: ./secrets/db_password.txt +``` + +#### Server Profile Settings + +```bash +# Use production profile for security +docker run -p 8080:8080 \ + -e "BOX_SERVER_PROFILE=production" \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:lucee6 +``` + +#### Health Check Security + +```dockerfile +# Custom health check for security +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD curl -f http://localhost:8080/health || exit 1 +``` + +### Container Hardening + +#### Read-Only File System + +```bash +# Run with read-only file system +docker run -p 8080:8080 \ + --read-only \ + --tmpfs /tmp \ + --tmpfs /usr/local/lib/serverHome/logs \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:alpine +``` + +#### Resource Limits + +```bash +# Set resource limits +docker run -p 8080:8080 \ + --memory=2g \ + --cpus=2 \ + --pids-limit=100 \ + -v "$(pwd):/app" \ + ortussolutions/commandbox:lucee6 +``` + +#### Security Context + +```yaml +# Kubernetes security context +apiVersion: apps/v1 +kind: Deployment +spec: + template: + spec: + securityContext: + runAsNonRoot: true + runAsUser: 1000 + fsGroup: 1000 + containers: + - name: commandbox + image: ortussolutions/commandbox:adobe2025 + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: + - ALL +``` + ## Best Practices and Customization ### Customizing Images -To create your own, customized Docker image, use [our Dockerfile repository](https://github.com/Ortus-Solutions/docker-commandbox/tree/development/builds) as a reference to begin your customizations. You can extend any of the base images and add your own additional functionality or modules. For example, to install the [Ortus Couchbase extension for Lucee](https://www.ortussolutions.com/products/couchbase-lucee): +To create your own, customized Docker image, use [our Dockerfile repository](https://github.com/Ortus-Solutions/docker-commandbox/tree/development/builds) as a reference to begin your customizations. You can extend any of the base images and add your own additional functionality or modules. For example, to install the [Ortus Redis extension for Lucee](https://www.ortussolutions.com/products/redis-lucee): -``` -FROM ortussolutions/commandbox:lucee5 +```dockerfile +FROM ortussolutions/commandbox:lucee6 ARG REDIS_EMAIL ARG REDIS_LICENSE_KEY ARG REDIS_ACTIVATION_CODE - # Install the Ortus Redis cache extension from Forgebox RUN box install 5C558CC6-1E67-4776-96A60F9726D580F1 # Scope in our args for extension activation -REDIS_EXTENSION_EMAIL=$REDIS_EMAIL -REDIS_EXTENSION_LICENSE_KEY=$REDIS_LICENSE_KEY -REDIS_EXTENSION_ACTIVATION_CODE=$REDIS_ACTIVATION_CODE -REDIS_EXTENSION_SERVER_TYPE=Production +ENV REDIS_EXTENSION_EMAIL=$REDIS_EMAIL +ENV REDIS_EXTENSION_LICENSE_KEY=$REDIS_LICENSE_KEY +ENV REDIS_EXTENSION_ACTIVATION_CODE=$REDIS_ACTIVATION_CODE +ENV REDIS_EXTENSION_SERVER_TYPE=Production # WARM UP THE SERVER WITH THE NEW EXTENSION RUN ${BUILD_DIR}/util/warmup-server.sh @@ -214,21 +697,21 @@ We recommend using the pre-tagged images as your base, rather than starting from ### Optimizing Startup Times -Because, with the exception of the CommandBox default engine of Lucee 5, the CFML server engines are downloaded and installed at container runtime. This can result in significant startup time increases ( even with Lucee 5 already downloaded in the base image, there is a time penalty for a "cold start" ). It is recommended that builds for production use employ an engine-specific variation for the build, which ensures the server is downloaded, in place, and warmed up on container start. +Because, with the exception of the CommandBox default engine of Lucee 5, the CFML server engines are downloaded and installed at container runtime. This can result in significant startup time increases (even with Lucee 5 already downloaded in the base image, there is a time penalty for a "cold start"). It is recommended that builds for production use employ an engine-specific variation for the build, which ensures the server is downloaded, in place, and warmed up on container start. For a basic example, the following will suffice: -``` -FROM ortussolutions/commandbox:lucee5 +```dockerfile +FROM ortussolutions/commandbox:lucee6 # Copy application files to root COPY ./ ${APP_DIR}/ ``` -In many cases, you will have tier-specific builds, with custom configuration options. The following employs a `build` directory, which includes additional configuration files for tier-based deployments: +In many cases, you will have tier-specific builds, with custom configuration options. The following employs a `build` directory, which includes additional configuration files for tier-based deployments: -``` -FROM ortussolutions/commandbox:lucee5 +```dockerfile +FROM ortussolutions/commandbox:lucee6 ARG CI_ENVIRONMENT_NAME @@ -257,14 +740,14 @@ Once your customized `Dockerfile` has has been built, you can run the generated ### Multi-Stage Builds -As of v3.0.0 of the image you can create multi-stage builds which include only a shell script to start the server, the RunWar servlet container, and the application/engine. _This build is finalized, however, so the startup script will bypass all environmental and server evaluation in favor of the variables provided in the generated shell script._ This means that you will need to provide all secrets and variables needed by your server and CFConfig files during the initial build phase, as the `.env` and `.cfconfig.json` files will not be in play during the server startup. +As of v3.0.0 of the image you can create multi-stage builds which include only a shell script to start the server, the RunWar servlet container, and the application/engine. _This build is finalized, however, so the startup script will bypass all environmental and server evaluation in favor of the variables provided in the generated shell script._ This means that you will need to provide all secrets and variables needed by your server and CFConfig files during the initial build phase, as the `.env` and `.cfconfig.json` files will not be in play during the server startup. -A finalized image reduces container startup times by up to 80% and reduces the final image size by up to 50%. Multi-stage builds are ideal for creating production images. The environment variable `FINALIZE_STARTUP`, when provided, will only generate the startup script. The script written is considered authoritative and will be used on the next container start. +A finalized image reduces container startup times by up to 80% and reduces the final image size by up to 50%. Multi-stage builds are ideal for creating production images. The environment variable `FINALIZE_STARTUP`, when provided, will only generate the startup script. The script written is considered authoritative and will be used on the next container start. To leverage this with a multi-stage build: -``` -FROM ortussolutions/commandbox:lucee5 as workbench +```dockerfile +FROM ortussolutions/commandbox:lucee6 as workbench # Generate the startup script only ENV FINALIZE_STARTUP true @@ -298,36 +781,36 @@ CMD /usr/local/bin/run.sh You may also create this finalized startup script in a single-stage build: -``` -FROM ortussolutions/commandbox:lucee5 +```dockerfile +FROM ortussolutions/commandbox:lucee6 # Generate the finalized startup script and exit RUN export FINALIZE_STARTUP=true;$BUILD_DIR/run.sh;unset FINALIZE_STARTUP ``` -This created image will contain the authoritative script with its runtime benefits and caveats ( see above ). Unlike the multi-stage build above, however , secret expansion will take place prior to image start, with the caveat that _any environment variables in existence when the finalized script was generated will overwrite the runtime-provided variables or secrets_. +This created image will contain the authoritative script with its runtime benefits and caveats (see above). Unlike the multi-stage build above, however, secret expansion will take place prior to image start, with the caveat that _any environment variables in existence when the finalized script was generated will overwrite the runtime-provided variables or secrets_. ## Issues Please submit issues to our repository: [https://github.com/Ortus-Solutions/docker-commandbox/issues](https://github.com/Ortus-Solutions/docker-commandbox/issues) -## LICENSE +## License -This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0). +This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0). -
+--- ## HONOR GOES TO GOD ABOVE ALL Because of His grace, this project exists. If you don't like this, then don't read it, it's not for you. ->"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: -By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. -And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; -And patience, experience; and experience, hope: -And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the -Holy Ghost which is given unto us. ." Romans 5:5 +> "Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: +> By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. +> And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; +> And patience, experience; and experience, hope: +> And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the +> Holy Ghost which is given unto us. ." Romans 5:5 ### THE DAILY BREAD - > "I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12 +> "I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12 From cfe43db0f62c4794761d1e20ae91ceb08681e7ac Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 19:22:52 +0200 Subject: [PATCH 14/16] - Updated CommandBox to v6.2.1 --- .github/workflows/pull-request.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scans.yml | 2 +- changelog.md | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 09f172a..42f2ce7 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest env: DOCKER_IMAGE: ortussolutions/commandbox - COMMANDBOX_VERSION: 6.1.0 + COMMANDBOX_VERSION: 6.2.1 strategy: matrix: include: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2417e82..691f925 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -134,7 +134,7 @@ jobs: env: DOCKER_IMAGE: ortussolutions/commandbox BUILD_IMAGE_TAG: ${{ matrix.BUILD_IMAGE_TAG }} - COMMANDBOX_VERSION: 6.2.0 + COMMANDBOX_VERSION: 6.2.1 IMAGE_VERSION: 3.13.5 run: | # Tag Builds diff --git a/.github/workflows/scans.yml b/.github/workflows/scans.yml index 3d4b339..c0e9914 100644 --- a/.github/workflows/scans.yml +++ b/.github/workflows/scans.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest env: DOCKER_IMAGE: ortussolutions/commandbox - COMMANDBOX_VERSION: 6.1.0 + COMMANDBOX_VERSION: 6.2.1 strategy: matrix: include: diff --git a/changelog.md b/changelog.md index aaa3396..98349dd 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Updated CommandBox to v6.2.1 - EditorConfig support for VSCode and IntelliJ - Added gitattributes file to ignore unnecessary files in git - Added markdownlint configuration and markdown lint fix From a42481e6e785000c0946fc127f8184e53f2c8c1f Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 19:26:27 +0200 Subject: [PATCH 15/16] more docs --- README.md | 2 ++ commandbox-docker.jpg | Bin 0 -> 207309 bytes 2 files changed, 2 insertions(+) create mode 100644 commandbox-docker.jpg diff --git a/README.md b/README.md index ca99ef9..8df68d5 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/Ortus-Solutions/docker-commandbox/release.yml?branch=development)](https://github.com/Ortus-Solutions/docker-commandbox/actions) [![GitHub License](https://badgen.net/github/license/Ortus-Solutions/docker-commandbox)](https://github.com/Ortus-Solutions/docker-commandbox?tab=License-1-ov-file#readme) +![CommandBox Docker](commandbox-docker.jpg) + Welcome to the official Docker images for [CommandBox](https://www.ortussolutions.com/products/commandbox), the BoxLang and CFML development and deployment tool from [Ortus Solutions](https://www.ortussolutions.com/). These images are designed to provide a lightweight, flexible, and powerful environment for running BoxLang and CFML applications using CommandBox as a powerful servlet container powered by [Undertow](https://undertow.io/). All images are published to [Docker Hub](https://hub.docker.com/r/ortussolutions/commandbox). diff --git a/commandbox-docker.jpg b/commandbox-docker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe315cbcf5c367afcced5ab676b9e98a671ef5f8 GIT binary patch literal 207309 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

Xy3B|+=VvYTSrF4x(WoL|^ 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 z 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 Zs=}9!QUxRDhLBH)|Ae^x2;NZ>`*`9w9W%3}~ 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
x30!C5)H!d|1zEh>oqY6( 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 literal 0 HcmV?d00001 From b64ed809cb097f81f2784a41b12af829c7673a7d Mon Sep 17 00:00:00 2001 From: Luis Majano Date: Thu, 3 Jul 2025 19:44:20 +0200 Subject: [PATCH 16/16] final changelog for release --- changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.md b/changelog.md index 98349dd..74e9dac 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [6.2.1/3.13.5] - 2025-07-03 + ### Added - Updated CommandBox to v6.2.1