Customizing the image

Last published : Aug 10, 2026
The EBX® Container Edition image can be used as a parent image to create a customized image.
Related information

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.1.4
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:
  • Rename file /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties , for example to ebx-default-original.properties .
  • Create a new file /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties container new property values. This file must define property ebx.file.previous set to the original property file new name, for example ebx-default-original.properties .
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.1.4
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 Java 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:
  • Copy the WAR to folder /opt/ebx/webapps . As stated previously, exploded format is recommended.
  • Create an associated Tomcat context XML file named module\_war\_name.xml and copy it to folder /opt/ebx/contexts.
  • Optionally, copy shared JARs to folder /opt/ebx/lib .
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 .
Here is a sample Docker file:
FROM ebx:6.1.4
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.1.4
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.1.4
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.