{"id":20136180,"url":"https://github.com/lucee/lucee-dockerfiles","last_synced_at":"2026-03-05T16:02:43.649Z","repository":{"id":2066139,"uuid":"38912349","full_name":"lucee/lucee-dockerfiles","owner":"lucee","description":"Official Lucee Dockerfiles for Docker Hub build images","archived":false,"fork":false,"pushed_at":"2026-03-02T22:58:16.000Z","size":3268,"stargazers_count":88,"open_issues_count":9,"forks_count":52,"subscribers_count":26,"default_branch":"master","last_synced_at":"2026-03-03T01:27:36.869Z","etag":null,"topics":["docker","lucee"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/u/lucee/","language":"ColdFusion","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"supporting/prewarm.sh","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-07-11T03:32:36.000Z","updated_at":"2026-03-02T22:58:20.000Z","dependencies_parsed_at":"2023-12-18T17:29:52.445Z","dependency_job_id":"319026b0-1cba-4135-bd6d-bbcdd27876c1","html_url":"https://github.com/lucee/lucee-dockerfiles","commit_stats":{"total_commits":327,"total_committers":17,"mean_commits":"19.235294117647058","dds":0.6880733944954128,"last_synced_commit":"986d2324289fb15b1bc76018bc3bc7c0d3eecf4b"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"purl":"pkg:github/lucee/lucee-dockerfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucee%2Flucee-dockerfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucee%2Flucee-dockerfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucee%2Flucee-dockerfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucee%2Flucee-dockerfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucee","download_url":"https://codeload.github.com/lucee/lucee-dockerfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucee%2Flucee-dockerfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30134574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T15:35:27.018Z","status":"ssl_error","status_checked_at":"2026-03-05T15:35:23.768Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","lucee"],"created_at":"2024-11-13T21:18:03.758Z","updated_at":"2026-03-05T16:02:43.624Z","avatar_url":"https://github.com/lucee.png","language":"ColdFusion","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lucee Docker Images\n\n[![Build Lucee Docker Images](https://github.com/lucee/lucee-dockerfiles/actions/workflows/main.yml/badge.svg)](https://github.com/lucee/lucee-dockerfiles/actions/workflows/main.yml)\n[![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee/)\n\n[Lucee](http://www.lucee.org/) application engine running on [Apache Tomcat](https://tomcat.apache.org/) J2EE application server.\n\n- The [lucee-dockerfiles GitHub Repository](https://github.com/lucee/lucee-dockerfiles) focuses on building and maintaining the Lucee Docker Images provided for [Lucee](http://www.lucee.org/).\n- The [Lucee GitHub Repository](https://github.com/lucee/Lucee) is the main repository for [Lucee](http://www.lucee.org/) itself.\n\n## Supported tags and respective Dockerfile links\n\n### Latest Stable Release - 6.2.0.321 - Tomcat 10.1 with Java 21 (recommended)\n\n- lucee/lucee:6.2.0.321-nginx-tomcat10.1-jre21-temurin-jammy\n- lucee/lucee:6.2.0.321-tomcat10.1-jre21-temurin-jammy\n- lucee/lucee:6.2.0.321\n- lucee/lucee:6.2.0.321-light-tomcat10.1-jre21-temurin-jammy\n- lucee/lucee:6.2.0.321-light\n\nTomcat 10.1 uses the Jakarta namespace, Tomcat 9 used the javax namespace, so you might need to update some libraries like urlrewrite\n\n### Previous stable release (LTS)\n\nLucee 6.0.x - Tomcat 9.0 with Java 11\n\n- `6.0.3.1-tomcat9.0-jre11-temurin-jammy`, `6.0.3.1`, **`6.0`**, **`latest`** ([Dockerfile](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile))\n- `6.0.3.1-nginx-tomcat9.0-jre11-temurin-jammy`, `6.0.3.1-nginx`, **`6.0-nginx`** ([Dockerfile.nginx](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile.nginx))\n\nLucee 5.4.x - Tomcat 9.0 with Java 11\n\n- `5.4.5.23-tomcat9.0-jre11-temurin-jammy`, `5.4.5.23`, **`5.4`** ([Dockerfile](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile))\n- `5.4.5.23-nginx-tomcat9.0-jre11-temurin-jammy`, `5.4.5.23-nginx`, **`5.4-nginx`** ([Dockerfile.nginx](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile.nginx))\n\nLucee 5.4.x - Tomcat 9.0 with Java 8\n\n- `5.4.5.23-tomcat9.0-jre8-temurin-jammy` ([Dockerfile](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile))\n- `5.4.5.23-nginx-tomcat9.0-jre8-temurin-jammy` ([Dockerfile.nginx](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile.nginx))\n\n### Bleeding edge Snapshot / RC / Beta\n\n- `6.1.0.193-RC-tomcat9.0-jre21-temurin-jammy`, `6.1.0.193-RC`\n- `6.1.0.193-RC-nginx-tomcat9.0-jre21-temurin-jammy`, `6.1.0.193-RC-nginx`\n- `6.0.2.41-RC-tomcat9.0-jre11-temurin-jammy`, `6.0.2.41-RC`\n- `6.0.2.41-RC-nginx-tomcat9.0-jre11-temurin-jammy`, `6.0.2.41-RC-nginx`\n\nThe `SNAPSHOTS` Docker image builds are automatically generated after a successful Lucee build. Check the [Docker Hub tags](https://hub.docker.com/r/lucee/lucee/tags) and/or the [Lucee Downloads](https://download.lucee.org/) page to see the latest SNAPSHOT version numbers.\n\nThe `RC` and `Beta` builds are manually triggered when they are announced.\n\nFor more information about Lucee versions and extensions see the [Lucee Downloads](https://download.lucee.org/) page.\n\n## How the tags work\n\nThe Lucee Docker image tags follow a naming convention which is used to produce \"simple tags\" that are updated with each release (e.g. `6.0`, `6.0-nginx`) as well as \"full tags\" which allow for very specific version targeting (e.g. `6.0.3.1-tomcat9.0-jre11-temurin-jammy`).\n\nThe tag naming convention is;\n\n`LUCEE_VERSION[-RELEASE_TYPE][-light][-nginx][-TOMCAT_VERSION-JRE_VERSION]`\n\n- `LUCEE_VERSION` is the Lucee Version number string. For simple tags it may optionally be in the `MAJOR.MINOR` format (e.g. `6.0`) and for full tags it's in the `MAJOR.MINOR.PATCH.BUILD` format (e.g. `6.0.3.1`). Snapshot, RC and Beta builds always include the full version number.\n- `RELEASE_TYPE` is the type of release; omitted for Releases, otherwise `SNAPSHOT`, `RC` or `BETA`\n- `-light` (optional) is a build with the Lucee \"Light\" JAR file, WITHOUT any extensions (users must install extensions separately, this includes database drivers, ORM, ESAPI, S3, image handling, etc)\n- `-nginx` (optional) is a build with the NGINX web server bundled and configured\n- `-TOMCAT_VERSION-JRE_VERSION` is the Tomcat major and minor version and Java major version of the build to allow users to choose between different combinations (e.g. `tomcat9.0-jre11-temurin-jammy` vs `tomcat9.0-jre21-temurin-jammy`). This is omitted for \"simple tags\" where the recommended Tomcat and Java versions are used.\n\n**Base Image / Operating System Notes:** \n\n- The Lucee images are based on the [Docker Tomcat images](https://hub.docker.com/_/tomcat).\n- The Docker Tomcat images were previously based on OpenJDK images which used Debian as the underlying OS. The OpenJDK Debian images have been [discontinued for Java 8 and Java 11](https://github.com/docker-library/tomcat/issues/262) so the next best match in the Docker Tomcat images are now the Ubuntu Jammy (22.04 LTS) and Focal (20.04 LTS) images using the OpenJDK baed Temurin Java distributions.\n- The Docker Tomcat images [removed support for Alpine](https://github.com/docker-library/tomcat/issues/166) and so the Lucee `-alpine` variant can no longer be supported. If the Tomcat base images add support for Alpine in the future then we will look to support the `-alpine` variant again.\n\n## Example Project Dockerfile\n\nFor the latest stable release with Tomcat only:\n\n```\nFROM lucee/lucee:6.0\n\nCOPY config/lucee/ /opt/lucee/web/\nCOPY www /var/www\n```\n\nFor the latest stable release with NGINX and Tomcat:\n\n```\nFROM lucee/lucee:6.0-nginx\n\nCOPY config/nginx/ /etc/nginx/\nCOPY config/lucee/ /opt/lucee/web/\nCOPY www /var/www\n```\n\nMore examples [here](https://github.com/lucee/lucee-docs/tree/master/examples/docker)\n\n## Features\n\n### Redirecting logs to the Console\n\nWith Lucee 6.2, you can redirect all logging to the console using an environment variables\n\n`LUCEE_LOGGING_FORCE_APPENDER=console`\n\nYou can also, override the default log level of ERROR\n\n`LUCEE_LOGGING_FORCE_LEVEL=INFO`\n\n### Java optimisation tweaks\n\n- JVM is set to [use `/dev/urandom` as an entropy source for secure random numbers](http://support.run.pivotal.io/entries/59869725-Java-Web-Applications-Slow-Startup-or-Failing) to avoid blocking Tomcat on startup.\n\n- Tomcat is configured to [skip the default scanning of Jar files on startup](http://www.gpickin.com/index.cfm/blog/how-to-get-your-tomcat-to-pounce-on-startup-not-crawl), significantly improving startup time.\n\n### Optimised for single-site application\n\nThe default configuration serves a single application for any hostname on the listening port. Multiple applications can be supported by editing the server.xml in the Tomcat config.\n\nLucee 6 by default runs in single mode (only one configuration and Administrator), if you prefer to run it in multi mode you need to to set the flag \"mode\" to \"multi\" in the of the .CFConfig.json file.\n\n## Using this image\n\n### Accessing the service\n\nLucee server's Tomcat installation listens on port 8888, and optional NGINX listens on port 80.\n\nThis base image exposes port 8080 to linked containers but its **not used**. You must publish or expose port 8888 if you wish to access Tomcat from your installation.\n\n### Accessing the Lucee Admin\n\nThe Lucee Admin URL is `/lucee/admin/` from the exposed port. With Lucee 5.4.6 (and above), 6.0.2 (and above) and 6.1 (and above),\nyou can set the password with the environment variable `LUCEE_ADMIN_PASSWORD=qwerty` or the system property `-Dlucee.admin.password=123456`.\n\n**THIS IS NOT A SECURE CONFIGURATION FOR PRODUCTION ENVIRONMENTS!** It is **strongly** recommended that you secure the container by:\n\n- Changing the server password\n- Using IP or URL filtering to restrict access to the Lucee Admin\n- Following recommended security practices such as the [Lucee Lockdown Guide](https://docs.lucee.org/guides/deploying-lucee-server-apps/lockdown-guide.html)\n\nThe NGINX tagged Docker images are configured to deny access to the Lucee Admin by default in the `default.conf`.\n\n### Folder locations\n\nWeb root for default site: `/var/www`\n\nConfiguration folders:\n\n- Tomcat config: `/usr/local/tomcat/conf`\n- Lucee config for default site: `/opt/lucee/web`\n- Lucee server context: `/opt/lucee/server/lucee-server/context`\n\nLog folders:\n\n- Tomcat logs: `/usr/local/tomcat/logs`\n- Lucee logs for default site: `/opt/lucee/web/logs`\n\n### Environment variables\n\nFollowing some helpful Environment variables you can use with the Lucee docker image.\n\n- `LUCEE_ADMIN_PASSWORD`: The password for the Lucee Administrator\n- `LUCEE_VERSION`: If set Lucee will run this version independent of the version installed.\n- `LUCEE_JAVA_OPTS`: Additional JVM parameters for Tomcat. Used by /usr/local/tomcat/bin/setenv.sh. Default: \"-Xms64m -Xmx512m\".\n\nFor all possible enviroment variables supported by Lucee, see [here](https://github.com/lucee/lucee-docs/blob/master/docs/recipes/environment-variables-system-properties.md).\n\n## How to locally develop Lucee Docker builds\n\nDeveloping and testing builds locally requires a Docker environment with buildx support and Python 3 installed. Run `pip3 install -r requirements.txt`\nto install the required dependencies.\n\nTo build and test specific verions set environment variables for the Tomcat and Lucee verions that are to be used, e.g.\n\n```\nexport TOMCAT_VERSION=9.0\nexport TOMCAT_JAVA_VERSION=jre11-temurin-jammy\nexport TOMCAT_BASE_IMAGE=\nexport LUCEE_MINOR=5.4\nexport LUCEE_SERVER=,-nginx\nexport LUCEE_VARIANTS=\n\nexport LUCEE_VERSION=5.4.4.38\n```\n\nThen use the default builder with buildx and run the `build-images` script using a single target platform only (matching your native platform), e.g.\n\n```\ndocker buildx use default\n./build-images.py --no-push --buildx-load --buildx-platform linux/amd64\n```\n\nSpecify the newly built image tag in a Docker Compose file to run and test the container image with `docker-compose up`;\n\n```\nlucee:\n  image: lucee/lucee:5.4.4.38\n  ports: \n    - \"8854:8888\"\n    - \"8054:80\"\n```\n\nYou can also find examples that show you how to for example add your own configuration or custom extensions [here](https://github.com/lucee/lucee-docs/tree/master/examples/docker)\n\n### Advanced build changes\n\nIf adding new Tomcat base (OS) images, Tomcat versions, Java versions, or Lucee versions or variants, the matrix.yaml needs to be edited so that several features\nlike the tag building/lookups will work. After modifying the matrix.yaml run the script `./generate-matrix.py` to generate the new Travis configuration (note: Travis CI is deprecated as builds have transitioned to GitHub Actions, however this part of the build hasn't been fully removed yet).\n\n## Older Lucee Base Images\n\nThe older versions of Lucee remain available as tags in the `lucee/lucee` Docker Hub repository. Listed are the newest releases for each minor version.\n\nLucee 5.3.x - Tomcat 9.0 with Java 11\n\n- `5.3.12.1-tomcat9.0-jre11-temurin-jammy`, `5.3.12.1`, **`5.3`** ([Dockerfile](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile))\n  - `5.3.12.1-nginx-tomcat9.0-jre11-temurin-jammy`, `5.3.12.1-nginx`, **`5.3-nginx`** ([Dockerfile.nginx](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile.nginx))\n\nLucee 5.2.x - Tomcat 9.0 with Java 11\n\n- `5.2.9.31-tomcat9.0-jre11`, `5.2.9.31`, **`5.2`** ([Dockerfile](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile))\n  - `5.2.9.31-nginx-tomcat9.0-jre11`, `5.2.9.31-nginx`, **`5.2-nginx`** ([Dockerfile.nginx](https://github.com/lucee/lucee-dockerfiles/blob/master/Dockerfile.nginx))\n\n## Legacy Lucee Base Images\n\nThe legacy Lucee Base Images / repositories will remain available for the projects that are using them, though the build process for those images is considered \"legacy\" as they have been superseded by the new build matrix builds.\n\nThe base images can be accessed in the existing Docker Hub repositories and the source is now in the `legacy` branch;\n\nhttps://github.com/lucee/lucee-dockerfiles/tree/legacy\n\nLucee 5.2 (Legacy builds)\n\n- [nginx + Tomcat 8.0-JRE8](./lucee-nginx/5.2/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee52-nginx.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee52-nginx/)\n- [Tomcat 8.0-JRE8](./5.2/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee52.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee52/)\n\nLucee 5.1 (Legacy builds)\n\n- [nginx + Tomcat 8.0-JRE8](./lucee-nginx/5.1/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee51-nginx.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee51-nginx/)\n- [Tomcat 8.0-JRE8](./5.1/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee51.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee51/)\n\nLucee 5.0 (Legacy builds)\n\n- [nginx + Tomcat 8.0-JRE8](./lucee-nginx/5.0/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee5-nginx.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee5-nginx/)\n- [Tomcat 8.0-JRE8](./5.0/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee5.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee5/)\n\nLucee 4.5 (Legacy builds)\n\n- [nginx + Tomcat 8.0-JRE8](./lucee-nginx/4.5/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee4-nginx.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee4-nginx/)\n- [Tomcat 8.0-JRE8](./4.5/) \u0026nbsp; \u0026nbsp;\n  [![docker pulls](https://img.shields.io/docker/pulls/lucee/lucee4.svg?label=docker+pulls)](https://hub.docker.com/r/lucee/lucee4/)\n\n\n# Contributing to this Project\n\nThe [Lucee Dockerfiles project](https://github.com/lucee/lucee-dockerfiles) is maintained by the community. Chief protagonist is @justincarter ([Justin Carter](https://github.com/justincarter) of [Daemon](http://www.daemon.com.au)). Bug reports and pull requests are most welcome.\n\nSpecial thanks to @rye ([Kristofer Rye](https://github.com/rye)) and @hawkrives ([Hawken Rives](https://github.com/hawkrives)) for their work on the Travis build matrix.\n\n\n# License\n\nThe Docker files and config files are available under the [MIT License](LICENSE). The Lucee engine, Tomcat, NGINX and any other softwares are available under their respective licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucee%2Flucee-dockerfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucee%2Flucee-dockerfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucee%2Flucee-dockerfiles/lists"}