The EBX® Container Edition image can be used as a parent image to create a customized image.
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 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.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
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:
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 .
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
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 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.