Ошибка при использовании образа Oracle Instant Client Docker - PullRequest
0 голосов
/ 25 апреля 2019

наше приложение основано на nodejs и должно запрашивать базу данных Oracle, поэтому мы устанавливаем пакет oracledb NPM. Итак, наш образ Docker основан на oracle Instant Client , файл Docker выглядит следующим образом:

FROM frolvlad/alpine-glibc

RUN apk update && apk add libaio

COPY instantclient_12_1.zip ./
RUN unzip instantclient_12_1.zip
RUN  mv instantclient_12_1/ /usr/lib/
RUN  rm instantclient_12_1.zip
RUN  ln /usr/lib/instantclient_12_1/libclntsh.so.12.1         /usr/lib/libclntsh.so
RUN ln /usr/lib/instantclient_12_1/libocci.so.12.1 /usr/lib/libocci.so
RUN ln /usr/lib/instantclient_12_1/libociei.so /usr/lib/libociei.so
RUN ln /usr/lib/instantclient_12_1/libnnz12.so /usr/lib/libnnz12.so

ENV ORACLE_BASE /usr/lib/instantclient_12_1
ENV LD_LIBRARY_PATH /usr/lib/instantclient_12_1
ENV TNS_ADMIN /usr/lib/instantclient_12_1
ENV ORACLE_HOME /usr/lib/instantclient_12_1

RUN apk add nodejs npm

RUN mkdir -p /var/app
WORKDIR /var/app
ADD package.json /var/app
COPY . /var/app

CMD ["npm","start"]

Но когда наше приложение начинает использовать пакет 'oracledb' NPM, оно получило следующую ошибку:

init() error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "Error loading shared library libnsl.so.1: No such file or directory (needed by /usr/lib/libclntsh.so)". See https://oracle.github.io/odpi/doc/installation.html#linux for help Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have 64-bit Oracle client libraries in LD_LIBRARY_PATH, or configured with ldconfig.
If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Так что клиент Oracle не смог найти libnsl.so.1, даже подумав, что он должен идти с glibc, и я вижу, что он находится под: '/ USR / Glibc-Compat / Библиотека'. Любые идеи, как это исправить? Заранее спасибо.

...