lucee / lucee-dockerfiles

Official Lucee Dockerfiles for Docker Hub build images
https://hub.docker.com/u/lucee/
MIT License
86 stars 50 forks source link
docker lucee

Lucee Docker Images

Build Lucee Docker Images docker pulls

Lucee application engine running on Apache Tomcat J2EE application server.

Supported tags and respective Dockerfile links

Latest stable release

Lucee 6.0.x - Tomcat 9.0 with Java 11 (recommended)

Previous stable release (LTS)

Lucee 5.4.x - Tomcat 9.0 with Java 11 (recommended)

Lucee 5.4.x - Tomcat 9.0 with Java 8

Bleeding edge Snapshot / RC / Beta

The SNAPSHOTS Docker image builds are automatically generated after a successful Lucee build. Check the Docker Hub tags and/or the Lucee Downloads page to see the latest SNAPSHOT version numbers.

The RC and Beta builds are manually triggered when they are announced.

For more information about Lucee versions and extensions see the Lucee Downloads page.

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. 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).

The tag naming convention is;

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

Base Image / Operating System Notes:

Example Project Dockerfile

For the latest stable release with Tomcat only:

FROM lucee/lucee:6.0

COPY config/lucee/ /opt/lucee/web/
COPY www /var/www

For the latest stable release with NGINX and Tomcat:

FROM lucee/lucee:6.0-nginx

COPY config/nginx/ /etc/nginx/
COPY config/lucee/ /opt/lucee/web/
COPY www /var/www

More examples here

Features

Java optimisation tweaks

Optimised for single-site application

The 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.

Lucee 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.

Using this image

Accessing the service

Lucee server's Tomcat installation listens on port 8888, and optional NGINX listens on port 80.

This 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.

Accessing the Lucee Admin

The 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), you can set the password with the environment variable LUCEE_ADMIN_PASSWORD=qwerty or the system property -Dlucee.admin.password=123456.

THIS IS NOT A SECURE CONFIGURATION FOR PRODUCTION ENVIRONMENTS! It is strongly recommended that you secure the container by:

The NGINX tagged Docker images are configured to deny access to the Lucee Admin by default in the default.conf.

Folder locations

Web root for default site: /var/www

Configuration folders:

Log folders:

Environment variables

Following some helpful Environment variables you can use with the Lucee docker image.

For all possible enviroment variables supported by Lucee, see here.

How to locally develop Lucee Docker builds

Developing and testing builds locally requires a Docker environment with buildx support and Python 3 installed. Run pip3 install -r requirements.txt to install the required dependencies.

To build and test specific verions set environment variables for the Tomcat and Lucee verions that are to be used, e.g.

export TOMCAT_VERSION=9.0
export TOMCAT_JAVA_VERSION=jre11-temurin-jammy
export TOMCAT_BASE_IMAGE=
export LUCEE_MINOR=5.4
export LUCEE_SERVER=,-nginx
export LUCEE_VARIANTS=

export LUCEE_VERSION=5.4.4.38

Then use the default builder with buildx and run the build-images script using a single target platform only (matching your native platform), e.g.

docker buildx use default
./build-images.py --no-push --buildx-load --buildx-platform linux/amd64

Specify the newly built image tag in a Docker Compose file to run and test the container image with docker-compose up;

lucee:
  image: lucee/lucee:5.4.4.38
  ports: 
    - "8854:8888"
    - "8054:80"

You can also find examples that show you how to for example add your own configuration or custom extensions here

Advanced build changes

If 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 like 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).

Older Lucee Base Images

The older versions of Lucee remain available as tags in the lucee/lucee Docker Hub repository. Listed are the newest releases for each minor version.

Lucee 5.3.x - Tomcat 9.0 with Java 11

Lucee 5.2.x - Tomcat 9.0 with Java 11

Legacy Lucee Base Images

The 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.

The base images can be accessed in the existing Docker Hub repositories and the source is now in the legacy branch;

https://github.com/lucee/lucee-dockerfiles/tree/legacy

Lucee 5.2 (Legacy builds)

Lucee 5.1 (Legacy builds)

Lucee 5.0 (Legacy builds)

Lucee 4.5 (Legacy builds)

Contributing to this Project

The Lucee Dockerfiles project is maintained by the community. Chief protagonist is @justincarter (Justin Carter of Daemon). Bug reports and pull requests are most welcome.

Special thanks to @rye (Kristofer Rye) and @hawkrives (Hawken Rives) for their work on the Travis build matrix.

License

The Docker files and config files are available under the MIT License. The Lucee engine, Tomcat, NGINX and any other softwares are available under their respective licenses.