New Lucee Docker image repository lucee/lucee

The Docker image for Lucee 5.3.2.77 is now available;
https://hub.docker.com/r/lucee/lucee

The Lucee Docker images are now in a new lucee/lucee repository with a build process that generates a number of different tagged images from a matrix of the Lucee version, Tomcat Version, OpenJDK version and optional bundled NGINX and optional Alpine base image.

The same Tomcat base images are still used and the Lucee, Tomcat, and nginx configurations are all largely untouched, which means there shouldn’t be any significant issues moving from an older base image to a newer one in terms of modifications to your own Dockerfile as all the container paths remain the same.

Updating the base image in your own projects Dockerfile should simply involve changing the FROM instruction, for example Lucee 5.2 + NGINX to Lucee 5.3 + NGINX;

FROM lucee/lucee52-nginx:latest

to

FROM lucee/lucee:5.3-nginx

The default application stack for Lucee 5.3 is now Java 11 (OpenJDK 11) and Tomcat 9.0, since Java 8 is EOL. Depending on your applications use of Java this might be a simple upgrade, or you might need to temporarily revert to Java 8 while any issues are resolved. We do have jre8 tags for that :slight_smile:

Read on below for the notes from the README about how the tags work…

Supported tags and respective Dockerfile links

Latest stable release (5.3)

Tomcat 9.0 with OpenJDK 11 (recommended)

  • 5.3.2.77-tomcat9.0-jre11 , 5.3.2.77 , 5.3 , latest (Dockerfile)
    • 5.3.2.77-nginx-tomcat9.0-jre11 , 5.3.2.77-nginx , 5.3-nginx (Dockerfile.nginx)

Tomcat 9.0 with OpenJDK 8

How the tags work

The Lucee Docker image tags follow a naming convention which is used to produce “simple tags” that are updated with each release (e.g. 5.3 , 5.3-nginx ) as well as “full tags” which allow for very specific version targeting (e.g. 5.3.2.77-tomcat9.0-jre11 ).

The tag naming convention is;

LUCEE_VERSION[-RELEASE_TYPE][-light][-nginx][-TOMCAT_VERSION-JRE_VERSION][-alpine]

  • LUCEE_VERSION is the Lucee Version number string. For simple tags it may optionally be in the MAJOR.MINOR format (e.g. 5.3 ) and for full tags it’s in the MAJOR.MINOR.PATCH.BUILD format (e.g. 5.3.2.77 ). Snapshot, RC and Beta builds always include the full version number.
  • RELEASE_TYPE is the type of release; omitted for Releases, otherwise SNAPSHOT , RC or BETA
  • -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)
  • -nginx (optional) is a build with the NGINX web server bundled and configured
  • -TOMCAT_VERSION-JRE_VERSION is the Tomcat major and minor version and OpenJDK major version of the build to allow users to choose between different combinations (e.g. tomcat9.0-jre11 vs tomcat9.0-jre8 ). This is omitted for “simple tags” where the recommended Tomcat and OpenJDK versions are used.
  • -alpine (optional) is a build using Alpine Linux as the base image. This results in a smaller Docker image which may be useful in some scenarios. NOTE: Alpine images currently support jre8 only, jre11 / Java 11 is not available. Alpine “simple tags” such as 5.3-alpine will be added in future builds

Legacy Lucee Docker image builds

The older Lucee Docker images will remain available in their existing Docker Hub repositories, though the build process for those images is considered “legacy” as they have been superseded by the new build matrix builds. The corresponding source is now in the legacy branch in GitHub;

Feedback

Please give the new Docker images a try and feel free to provide feedback here on the forum, or log a GitHub Issue if you have a specific problem that needs to be addressed.

4 Likes

Nice!

1 Like