Git Product home page Git Product logo

tomcat-mod_cluster's Introduction

Supported tags and respective Dockerfile links

What is mod_cluster?

mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy, mod_cluster uses a communication channel to forward requests from httpd to one of a set of application server nodes. Unlike mod_jk and mod_proxy, mod_cluster leverages an additional connection between the application server nodes and httpd. The application server nodes use this connection to transmit server-side load balance factors and lifecycle events back to httpd via a custom set of HTTP methods, affectionately called the Mod-Cluster Management Protocol (MCMP). This additional feedback channel allows mod_cluster to offer a level of intelligence and granularity not found in other load balancing solutions.

JBoss mod_cluster project page

JBoss mod_cluster

What is the tomcat-mod_cluster image?

An extension of the upstream tomcat image with JBoss mod_cluster worker components:

  • mod_cluster-core.jar
  • mod_cluster-container-tomcat.jar
  • mod_cluster-container-catalina.jar
  • mod_cluster-container-catalina-standalone.jar
  • mod_cluster-container-spi.jar
  • jboss-logging.jar

How to use the tomcat-mod_cluster image?

This image inherits from the configuration options from the parent tomcat image.

The ModCluster Listener is configured by default to listen to multicast advertise messages in the Tomcat server configuration file (conf/server.xml). Please refer to the mod_cluster documentation for a list of all available worker-side Configuration Properties.

Image Variants

The tomcat-mod_cluster images come in different flavors, each designed for a specific use case.

Base operating system

tomcat-mod_cluster:<version>

This is the defacto image, based on the Debian operating system, available in the debian official image.

tomcat-mod_cluster:<version>-alpine

This image is based on the Alpine Linux operating system, available in the alpine official image. Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.

tomcat-mod_cluster:<version>-centos

This image is based on the CentOS operating system, available in the centos official image.

Components

A tagging convention determines the version of the components distributed with the tomcat-mod_cluster image.

<version α>

  • mod_cluster release: α
  • Tomcat release: as distributed with the tomcat:latest upstream image

<version α>-<version β>

  • mod_cluster release: α
  • Tomcat release: β (latest patch version)

Maintenance

Updating configuration

After performing changes to the Dockerfile templates, regenerate the repository tree with:

./generate-dockerfiles.sh

Updating library definition

After committing changes to the repository, regenerate the library definition file with:

./generate-bashbrew-library.sh >| tomcat-mod_cluster

Rebuilding images

All images in this repository can be rebuilt and tagged manually using Bashbrew, the tool used for cloning, building, tagging, and pushing the Docker official images. To do so, simply call the bashbrew utility, pointing it to the included tomcat-mod_cluster definition file as in the example below:

bashbrew --library . build tomcat-mod_cluster

Automated build pipeline

Any push to the upstream tomcat repository or to the source repository triggers an automatic rebuild of all the images in this repository. From a high perspective the automated build pipeline looks like the below diagram:

Automated build pipeline

tomcat-mod_cluster's People

Contributors

antoineco avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

tomcat-mod_cluster's Issues

tc8.5 (debian) build fails

The build of the tc8.5 debian flavour currently fails due to an outdated version of the openjdk package in the openjdk:8-jre image.

Log trace:

+ apt-get install -y --no-install-recommends -V openjdk-8-jdk=8u111-b14-2~bpo8+1 maven
Reading package lists...
Building dependency tree...
Reading state information...
E: Version '8u111-b14-2~bpo8+1' for 'openjdk-8-jdk' was not found

Fixed by docker-library/openjdk#95
Currently *-tc8.5 images are built manually based on the aforementioned PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.