docker-images: Instant Client missing file libaio

I am currently getting this error:

sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) 
DPI-1047: Cannot locate a 64-bit Oracle Client library: "libaio.so.1: cannot open shared object file: No such file or directory". 
See https://oracle.github.io/odpi/doc/installation.html#linux for help

I logged everything in my /usr/lib/oracle folder, and I see:


/usr/lib/oracle/12.2
/usr/lib/oracle/12.2/client64
/usr/lib/oracle/12.2/client64/lib
/usr/lib/oracle/12.2/client64/lib/libnnz12.so
/usr/lib/oracle/12.2/client64/lib/libocci.so
/usr/lib/oracle/12.2/client64/lib/ojdbc8.jar
/usr/lib/oracle/12.2/client64/lib/liboramysql12.so
/usr/lib/oracle/12.2/client64/lib/libmql1.so
/usr/lib/oracle/12.2/client64/lib/xstreams.jar
/usr/lib/oracle/12.2/client64/lib/libclntshcore.so
/usr/lib/oracle/12.2/client64/lib/libocci.so.12.1
/usr/lib/oracle/12.2/client64/lib/ottclasses.zip
/usr/lib/oracle/12.2/client64/lib/libsqlplus.so
/usr/lib/oracle/12.2/client64/lib/libociei.so
/usr/lib/oracle/12.2/client64/lib/libocijdbc12.so
/usr/lib/oracle/12.2/client64/lib/libclntsh.so
/usr/lib/oracle/12.2/client64/lib/libsqlplusic.so
/usr/lib/oracle/12.2/client64/lib/glogin.sql
/usr/lib/oracle/12.2/client64/lib/libons.so
/usr/lib/oracle/12.2/client64/lib/libipc1.so
/usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
/usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1
/usr/lib/oracle/12.2/client64/bin
/usr/lib/oracle/12.2/client64/bin/adrci
/usr/lib/oracle/12.2/client64/bin/genezi
/usr/lib/oracle/12.2/client64/bin/sqlplus

here is what I am using in Docker:

FROM store/oracle/database-instantclient:12.2.0.1 AS oracle_client_build

FROM some/other/image

COPY --from=oracle_client_build /usr/lib/oracle /usr/lib/oracle
COPY --from=oracle_client_build /usr/share/oracle /usr/share/oracle
COPY --from=oracle_client_build /usr/include/oracle /usr/include/oracle


ENV ORACLE_HOME        '/usr/lib/oracle/12.2.0.1/client64'
ENV PATH               "$PATH:$ORACLE_HOME/bin"
ENV LD_LIBRARY_PATH    "$ORACLE_HOME/lib"
ENV TNS_ADMIN          "$ORACLE_HOME/network/admin"

ENTRYPOINT ["pserve", "development_bd_prod.ini"]  # cannot find libaio

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (9 by maintainers)

Most upvoted comments

we are using Ubuntu as a base image - so will apt-get install libaio1 work the same as yum install? Where does yum install in your image put the libaio files?

Because you’re not installing it in your some/other/image. You probably need a yum install libaio-devel or whatever the equivalent is for the distro you’re using. The Instant Client is dynamically linked against libaio and the yum install command in our Docker image would automatically install it into that image.