我正在尝试构建包含oracledb客户端和nodejs的docker镜像,但我在The command '/bin/sh -c ldconfig' returned a non-zero code: 1
上收到错误RUN ldconfig
。
我找不到任何可以帮助我解决这个问题的事情,而且我在过去2小时内一直试图解决这个问题,我需要帮助!
其他信息:
奇怪的是,当我使用docker exec -it container_name sh
进入容器然后执行ldconfig
时,它运行良好......
这是dockerfile
:
FROM node:9.11-alpine
WORKDIR /
COPY ./oracle /opt/oracle
RUN apk update && \
apk add --no-cache libaio && \
mkdir /etc/ld.so.conf.d && \
sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf" && \
ldconfig
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH
ENV PATH=/opt/oracle/instantclient_12_2:$PATH
CMD ["tail", "-f", "/dev/null"]
答案 0 :(得分:0)
我有一篇文章“Docker中的节点oracledb Web服务”,显示在https://blogs.oracle.com/opal/a-node-oracledb-web-service-in-docker使用Oracle Linux容器(包括带有Instant Client的容器)
更新:尝试最新的Oracle Instant Client 18.3容器https://github.com/oracle/docker-images/blob/master/OracleInstantClient/dockerfiles/18.3.0/Dockerfile,它会自动提取所需的RPM - 无需手动下载。这将连接到Oracle DB 11.2或更高版本。
答案 1 :(得分:0)
在高山ldconfig
中,需要将配置目录作为参数。
尝试像这样运行ldconfig
:
ldconfig /etc/ld.so.conf.d
理论上应该起作用。