Cloud Software Group, Inc. EBX®
Documentation > Administration Guide > EBX® Container Edition
Navigation modeDocumentation > Administration Guide > EBX® Container Edition

Customizing the image

The EBX® Container Edition image can be used as a parent image to create a customized image.

User specified in Docker file

The EBX® Container Edition image’s docker file specifies user ebx .

A Docker file extending the image may need to set current user to root and later switch back to ebx as in following sample:

FROM ebx:6.2.0
USER root
# Do something requiring being root...
USER ebx

Setting default configuration

Setting default EBX® configuration should not be based on /opt/ebx/conf/ebx-container.properties as this file may be overridden at runtime.

Instead, proceed as following in the Docker file:

For the list of properties supported by EBX® see chapter TIBCO EBX® main configuration file .

Here is a sample Docker file that set the locale to "en-US"

FROM ebx:6.2.0
USER root

RUN mv /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties \
       /opt/ebx/webapps/ebx/WEB-INF/ebx-default-original.properties

RUN echo "ebx.file.previous=ebx-default-original.properties" >> \
         /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties
RUN echo "ebx.locales.available=en-US" >> /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties

USER ebx

Adding a custom module

One can extend EBX® by developing custom modules. An EBX® module is a standard Jakarta EE web application, packaging various resources such as XML Schema documents, Java classes and static resources.

For more information on EBX® module see chapter Packaging TIBCO EBX® modules .

With EBX® Container Edition, it is recommended to deploy modules as "unpacked" (exploded) WARs. This allows a faster startup and avoids unnecessarily increasing container size because Tomcat will not need to unpack WAR files.

The recommended way to add a module to an image is to:

The Tomcat context XML file should have the following content:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${ebx.container.base}/webapps/module_war_name"/>

Using variable ${ebx.container.base} is required for correct support of environment variable EBX_ROOT_PATH .

For more information on Tomcat contexts see https://tomcat.apache.org/tomcat-10.1-doc/config/context.html#Defining_a_context .

Here is a sample Docker file:

FROM ebx:6.2.0
USER root
COPY "./module_name.xml" "/opt/ebx/contexts"
COPY "./module_name" "/opt/ebx/webapps"
USER ebx

Adding a new locale

To add a new local you must have the jar file containing the language pack and add the locale to the ebx configuration.

Here is a sample Docker file

FROM ebx:6.2.0
USER root

COPY "<path_to_lib>" "/opt/ebx/lib"

RUN mv "/opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties" \
       "/opt/ebx/webapps/ebx/WEB-INF/ebx-default-original.properties"

RUN echo "ebx.file.previous=ebx-default-original.properties" >> \
         "/opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties"
RUN echo "ebx.locales.available=es" >> "/opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties"

USER ebx

In this example, the lib is copied and the locale is set to "es" using the method described in the "setting default configuration" section

Adding a new JDBC driver

Adding a new JDBC driver is similar to adding a new library. You simply have to copy the jar file in the "/opt/ebx/lib" folder with the correct permission. Here is an example with the Oracle JDBC driver :

FROM ebx:6.2.0
USER root

ADD \
 https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc11/21.8.0.0/ojdbc11-21.8.0.0.jar \
 "/opt/ebx/lib/"

RUN chmod +r "/opt/ebx/lib/ojdbc11-21.8.0.0.jar"

USER ebx

See Database drivers for more information.

Documentation > Administration Guide > EBX® Container Edition