Hello FMEs!!
I am currently working on a modified docker-compose setup for FME 2017.1 that includes the Oracle Client libraries so that FME could access an Oracle Instance. I applied the various guides I found and basically came up with the following Dockerfile for the FME engine:
FROM safesoftware/fmeserver-engine:2017.1.1
# Installation of the Oracle Instant Client
ADD OracleClient/oracle-instantclient*.rpm /tmp/
ENV ORACLE_HOME=/usr/lib/oracle/11.2/client64
RUN apt-get install -y libaio1
RUN alien -i -c -v /tmp/oracle-instantclient*.rpm && \
rm -f /tmp/oracle-instantclient*.rpm && \
echo $ORACLE_HOME/lib > /etc/ld.so.conf.d/oracle-instantclient11.2.conf && \
ldconfig
ENV PATH=$PATH:$ORACLE_HOME/bin
ENV LD_LIBRARY_PATH=$ORACLE_HOME/lib
ENV TNS_ADMIN=$ORACLE_HOME/network/admin
WORKDIR $LD_LIBRARY_PATH
RUN ln -s libclntsh.so.11.1 libclntsh.so
RUN mkdir $TNS_ADMIN -p
COPY OracleClient/*.ora $TNS_ADMIN/
The modified build for the engine is used in the docker-compose.yml instead of the original image for the engine. Once the whole composition is built and started, I can login into the FME server and I can also publish a Workspace to it. If that workspace contains an Oracle Database Connection, I receive a warning message that this kind of connection is not supported. Once the workspace is published and scheduled for execution, I can see the following message in the logs:
WARNING: Could not find Oracle client libraries in '/usr/lib/oracle/11.2/client64/lib'
My question now is; is that error linked to the fact that I am preparing this on my local machine and have not applied a correct license to the server or is there another reason why FME cannot find the Oracle client libraries?
If I connect to the engine through docker-compose exec fmeserverengine /bin/bash I can start sqlplus and connect to the target server. So apparently the general client setup seems to be working. The lib/ directory seem to contain the correct files:
glogin.sql
libclntsh.so -> libclntsh.so.11.1
libclntsh.so.11.1
libnnz11.so
libocci.so.11.1
libociei.so
libocijdbc11.so
libsqlplusic.so
libsqlplus.so
libsqora.so.11.1
ojdbc5.jar
ojdbc6.jar
xstreams.jar
And also the environment variables are correctly set:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin
ORACLE_HOME=/usr/lib/oracle/11.2/client64
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/oracle/11.2/client64/bin
So at least from my understanding everything is setup correctly. However, it does not work or is not accepted by FME for some reason.
Any ideas why this is not working?