Products | Versions |
---|---|
TIBCO Streaming | 10.6 and later |
My Streaming application depends on external native libraries. How can I make these libraries available on the Docker container's file system?
/opt/tibco/ftl/6.6/lib/ /opt/tibco/as/4.6/lib/The *.so native library files in these directories need to be copied, along with the java library (/opt/tibco/as/4.6/lib/tibdg.jar), to the Docker container. These paths then need to be specified in your SB engine configuration file:
configuration = { StreamBaseEngine = { externalNativeLibraryPath = { linux_x86_64 = [ "/opt/tibco/as/4.6/lib", "/opt/tibco/ftl/6.6/lib" ] } externalClassPath = [ "/opt/tibco/as/4.6/lib/tibdg.jar" ] } }In your Streaming application project's Docker base location (under src/main/docker/base/), create folders to store copies of the FTL and ActiveSpaces libraries:
src/main/docker/base/ftl-libs/ src/main/docker/base/as-libs/Then obtain installation kits for FTL and Activespaces, and extract the needed libraries:
$ mkdir ~/tmp $ cd ~/tmp $ unzip /path/to/TIB_ftl_6.6.1_linux_x86_64.zip $ unzip /path/to/TIB_as_4.6.1_linux_x86_64.zip $ tar -xzf TIB_ftl_6.6.1/tar/TIB_ftl_6.6.1_linux_x86_64-java.tar.gz $ tar -xzf TIB_ftl_6.6.1/tar/TIB_ftl_6.6.1_linux_x86_64-runtime.tar.gz $ tar -xzf TIB_ftl_6.6.1/tar/TIB_ftl_6.6.1_linux_x86_64-thirdparty.tar.gz $ tar -xzf TIB_as_4.6.1/tar/TIB_as_4.6.1_linux_x86_64-java.tar.gz $ tar -xzf TIB_as_4.6.1/tar/TIB_as_4.6.1_linux_x86_64-runtime.tar.gz $ tar -xzf TIB_as_4.6.1/tar/TIB_as_4.6.1_linux_x86_64-thirdparty.tar.gz $ cp opt/tibco/ftl/6.6/lib/* /path/to/project/src/main/docker/base/ftl-libs/ $ cp opt/tibco/as/4.6/lib/* /path/to/project/src/main/docker/base/as-libs/Next, edit the Dockerfile (under /path/to/project/src/main/docker/base/Dockerfile) to copy these files to the container, and set the LD_LIBRARY_PATH environment variable:
# # Set environment # ENV STREAMING_PRODUCT_HOME /opt/tibco/streambase ENV STREAMING_RUNTIME_HOME /var/opt/tibco/streambase ENV TIBFTL_LIBS /opt/tibco/ftl/6.6/lib ENV TIBDG_LIBS /opt/tibco/as/4.6/lib ENV JAVA_HOME /etc/alternatives/jre ENV PATH /bin:/usr/sbin:${STREAMING_PRODUCT_HOME}/distrib/tibco/bin ENV LD_LIBRARY_PATH ${TIBFTL_LIBS}:${TIBDG_LIBS} ENV USER_NAME tibco ... # # Install FTL and AS libraries # RUN mkdir -p ${TIBFTL_LIBS} RUN mkdir -p ${TIBDG_LIBS} COPY ftl-libs/. ${TIBFTL_LIBS} COPY as-libs/. ${TIBDG_LIBS} RUN chmod 755 ${TIBFTL_LIBS}/* RUN chmod 755 ${TIBDG_LIBS}/* ...Finally, build your Docker image and run it:
$ cd /path/to/project/ $ mvn clean package -DskipTests $ docker run -d --name deployas -e STREAMING_NODENAME=deploy.as deployas:0.0.1-SNAPSHOT