EBX® Container Edition イメージを親イメージとして使用して、カスタマイズされたイメージを作成できます。
EBX® Container Edition イメージの Docker ファイルは、ユーザー ebx を指定します。
イメージを拡張する Docker ファイルでは、次のサンプルのように、現在のユーザーを root に設定し、後で ebx に戻す必要がある場合があります。
FROM ebx:6.1.3 USER root # Do something requiring being root... USER ebx
デフォルトの EBX® 構成の設定は、/opt/ebx/conf/ebx-container.properties に基づくべきではありません。このファイルは、実行時にオーバーライドされる可能性があるためです。
代わりに、Docker ファイルで次の手順を実行します。
ファイル /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties の名前を、たとえば ebx-default-original.properties に変更します。
新しいファイル /opt/ebx/webapps/ebx/WEB-INF/ebx-default.properties コンテナの新しいプロパティ値を作成します。このファイルは、ebx-default-original.properties などの元のプロパティファイルの新しい名前に設定されたプロパティ ebx.file.previous を定義する必要があります。
EBX® でサポートされているプロパティのリストについては、TIBCO EBX® メイン構成ファイル の章を参照してください。
以下は、ロケールを「en-US」に設定したサンプルの Docker ファイルを示しています。
FROM ebx:6.1.3 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
カスタムモジュールを開発することで、EBX® を拡張できます。EBX® モジュールは、標準の Java EE Web アプリケーションであり、XML スキーマドキュメント、Java クラス、静的リソースなどのさまざまなリソースをパッケージ化します。
EBX® モジュールの詳細については、TIBCO EBX® モジュールのパッケージ化 の章を参照してください。
EBX® Container Edition では、モジュールを「アンパック (展開)」 WAR として展開することをお勧めします。これにより、起動が速くなり、Tomcat が WAR ファイルを解凍する必要がないため、コンテナサイズが不必要に大きくなるのを防ぐことができます。
モジュールをイメージに追加するための推奨される方法は、次のとおりです。
WAR をフォルダー /opt/ebx/webapps にコピーします。前述のように、展開形式が推奨されます。
module_war_name.xml という名前の関連する Tomcat コンテキスト XML ファイルを作成し、フォルダー /opt/ebx/contexts にコピーします。
オプションで、共有 JAR をフォルダー /opt/ebx/lib にコピーします。
Tomcat コンテキスト XML ファイルには次の内容が含まれている必要があります。
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="${ebx.container.base}/webapps/module_war_name"/>
環境変数 EBX_ROOT_PATH を正しくサポートするには、変数 ${ebx.container.base} を使用する必要があります。
Tomcat コンテキストの詳細については、https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context を参照してください。
以下にサンプルの Docker ファイルを示します。
FROM ebx:6.1.3 USER root COPY "./module_name.xml" "/opt/ebx/contexts" COPY "./module_name" "/opt/ebx/webapps" USER ebx
新しいロケールを追加するには、言語パックを含む jar ファイルが必要であり、ロケールを ebx 構成に追加する必要があります。
以下は、サンプルの Docker ファイルを示しています。
FROM ebx:6.1.3 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
この例では、デフォルト構成の設定セクションで説明されている方法を使用して、lib がコピーされ、ロケールが「es」に設定されます。
新しい JDBC ドライバーの追加は、新しいライブラリの追加に似ています。正しい権限で「/opt/ebx/lib」フォルダーにある jar ファイルをコピーするだけです。以下は、Oracle JDBCドライバーの例を示しています。
FROM ebx:6.1.3 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
詳細については、データベースドライバーを参照してください。