c++ - docker 找不到那里的库
问题描述
我面临一个奇怪的问题。我有一个我创建的可执行文件的 dockerfile。显然它在码头外完美运行。我的 docker 文件有几行,例如:
COPY libaws-cpp-sdk-s3.so /usr/local/lib/
COPY libaws-cpp-sdk-core.so /usr/local/lib/
COPY libaws-c-event-stream.so.0unstable /usr/local/lib/
COPY libvtkIOImage-9.0.so.1 /usr/local/lib/
COPY libvtkImagingCore-9.0.so.1 /usr/local/lib/
它确实正确找到了这些库......但它根本找不到其他一些库。比如……
COPY libvtkDICOMParser-9.0.so.1 /usr/local/lib/
由于找到了其他库,因此我不必对 LD 库路径进行任何更改。即使这样,我也尝试设置 LD_LIBRARY_PATH 但它完全没有改变。
我已将 Dockerfile 中的最终命令更改为 ldd 以尝试解决问题,但它根本无法在与它可以看到的其他库所在的位置相同的位置找到存在的库。
有人在 Docker 上遇到过类似的事情吗?
这里是整个 Dcokerfile,请注意我更改了 ldd 的最终命令,以检查失败的原因。docker print 就在 Dockerfile 之后。请注意 libvtkDICOMParser-9.0.so.1 作为已复制库的示例,但 ldd 在 docker 内部找不到它(在 docker 外部它工作正常)
FROM ubuntu:focal
run apt-get update && \
apt-get install -y libicu-dev libcurl4 libwrap0-dev libgl1-mesa-dev
RUN apt install -y mesa-common-dev
RUN apt install -y libosmesa6-dev
RUN apt install -y libglu1-mesa-dev
RUN apt install -y libjpeg8
ENV PORT 4200
EXPOSE 4200
WORKDIR /server
COPY remote_server ./
COPY libvtkCommonTransforms-9.0.so.1 /usr/local/lib/
COPY libvtkDICOMParser-9.0.so.1 ./
COPY libaws-cpp-sdk-s3.so /usr/local/lib/
COPY libaws-cpp-sdk-core.so /usr/local/lib/
COPY libaws-c-event-stream.so.0unstable /usr/local/lib/
COPY libaws-checksums.so /usr/local/lib/
COPY libaws-c-common.so.0unstable /usr/local/lib/
COPY libcharls.so.14 /usr/local/lib/
COPY libcmr.so.14 /usr/local/lib/
COPY libdcmdata.so.14 /usr/local/lib/
COPY libdcmdsig.so.14 /usr/local/lib/
COPY libdcmfg.so.14 /usr/local/lib/
COPY libdcmimage.so.14 /usr/local/lib/
COPY libdcmimgle.so.14 /usr/local/lib/
COPY libdcmiod.so.14 /usr/local/lib/
COPY libdcmjpeg.so.14 /usr/local/lib/
COPY libdcmjpls.so.14 /usr/local/lib/
COPY libdcmnet.so.14 /usr/local/lib/
COPY libdcmpmap.so.14 /usr/local/lib/
COPY libdcmpstat.so.14 /usr/local/lib/
COPY libdcmqrdb.so.14 /usr/local/lib/
COPY libdcmrt.so.14 /usr/local/lib/
COPY libdcmseg.so.14 /usr/local/lib/
COPY libdcmsr.so.14 /usr/local/lib/
COPY libdcmtls.so.14 /usr/local/lib/
COPY libdcmtract.so.14 /usr/local/lib/
COPY libdcmwlm.so.14 /usr/local/lib/
COPY libi2d.so.14 /usr/local/lib/
COPY libijg12.so.14 /usr/local/lib/
COPY libijg8.so.14 /usr/local/lib/
COPY libijg16.so.14 /usr/local/lib/
COPY liboflog.so.14 /usr/local/lib/
COPY libofstd.so.14 /usr/local/lib/
COPY libvtkDICOMParser-9.0.so.1 /usr/local/lib/
COPY libicuuc.so.66 /usr/local/lib/
COPY libvtkIOImage-9.0.so.1 /usr/local/lib/
COPY libvtkImagingCore-9.0.so.1 /usr/local/lib/
COPY libvtkCommonExecutionModel-9.0.so.1 /usr/local/lib/
COPY libvtkCommonDataModel-9.0.so.1 /usr/local/lib/
COPY libvtkCommonCore-9.0.so.1 /usr/local/lib/
COPY libvtkloguru-9.0.so.1 /usr/local/lib/
COPY libvtkCommonMisc-9.0.so.1 /usr/local/lib/
COPY libvtkjpeg-9.0.so.1 /usr/local/lib/
COPY libvtksys-9.0.so.1 /usr/local/lib/
COPY libvtkCommonMath-9.0.so.1 /usr/local/lib/
RUN export LD_LIBRARY_PATH=/usr/local/lib:./
#CMD ["./remote_server", "127.0.0.1" ,"8080","./"]
CMD ["ldd" ,"./remote_server"]
////输出///
linux-vdso.so.1 (0x00007ffdbd2a2000)
libvtkIOImage-9.0.so.1 => /usr/local/lib/libvtkIOImage-9.0.so.1 (0x00007fe457f7c000)
libvtkImagingCore-9.0.so.1 => /usr/local/lib/libvtkImagingCore-9.0.so.1 (0x00007fe457d4e000)
libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fe457cc5000)
libaws-cpp-sdk-s3.so => /usr/local/lib/libaws-cpp-sdk-s3.so (0x00007fe457528000)
libaws-cpp-sdk-core.so => /usr/local/lib/libaws-cpp-sdk-core.so (0x00007fe4571b6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe457193000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fe4570fe000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fe456e28000)
libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fe456d97000)
libvtkCommonExecutionModel-9.0.so.1 => /usr/local/lib/libvtkCommonExecutionModel-9.0.so.1 (0x00007fe456cd2000)
libvtkCommonDataModel-9.0.so.1 => /usr/local/lib/libvtkCommonDataModel-9.0.so.1 (0x00007fe45688d000)
libvtkCommonCore-9.0.so.1 => /usr/local/lib/libvtkCommonCore-9.0.so.1 (0x00007fe45640b000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe456228000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe4560d9000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe4560be000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe455ecc000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe45818e000)
libvtkDICOMParser-9.0.so.1 => not found
libvtkmetaio-9.0.so.1 => not found
libvtkpng-9.0.so.1 => not found
libvtkpugixml-9.0.so.1 => not found
libvtktiff-9.0.so.1 => not found
libvtkzlib-9.0.so.1 => not found
libvtkCommonSystem-9.0.so.1 => not found
libvtkCommonTransforms-9.0.so.1 => not found
libvtkCommonMath-9.0.so.1 => not found
libvtksys-9.0.so.1 => not found
libvtkjpeg-9.0.so.1 => not found
libvtkCommonTransforms-9.0.so.1 => not found
libvtkCommonMath-9.0.so.1 => not found
libaws-c-event-stream.so.0unstable => /usr/local/lib/libaws-c-event-stream.so.0unstable (0x00007fe455ebb000)
libaws-c-common.so.0unstable => /usr/local/lib/libaws-c-common.so.0unstable (0x00007fe455e6b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe455e65000)
libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fe455e3c000)
libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fe455e19000)
librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fe455df9000)
libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007fe455d8b000)
libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fe455d78000)
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fe455d2b000)
libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fe455cd5000)
liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fe455cc2000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fe455cb4000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe455c98000)
libvtkCommonMisc-9.0.so.1 => not found
libvtksys-9.0.so.1 => not found
libvtkCommonTransforms-9.0.so.1 => not found
libvtkCommonMisc-9.0.so.1 => not found
libvtkCommonSystem-9.0.so.1 => not found
libvtkCommonMath-9.0.so.1 => not found
libvtksys-9.0.so.1 => not found
libvtksys-9.0.so.1 => not found
libvtkloguru-9.0.so.1 => not found
libaws-checksums.so => /usr/local/lib/libaws-checksums.so (0x00007fe455c87000)
libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fe455b05000)
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fe45592f000)
libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fe4558f5000)
libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fe4558bb000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fe455837000)
libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fe45575a000)
libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fe455729000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fe455722000)
libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fe455711000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fe4556f5000)
libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fe4556d8000)
libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fe455693000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fe455670000)
libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fe455538000)
libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fe455522000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fe45551b000)
libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fe45550f000)
libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fe45547c000)
libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fe4553d3000)
libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fe45539b000)
libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007fe455382000)
libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fe455376000)
libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007fe45534c000)
libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fe455338000)
libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fe4552ea000)
libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fe4551c1000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fe455186000)
解决方案
推荐阅读
- python - Python Pandas / Sales force SOQL:如何使用 for 循环将列表传递给 SOQL 查询?
- xamarin.forms - 删除标题视图 xamarin 表单中的左侧空格
- gmail-api - 准备应用程序进行验证 - google api
- vue.js - 在 main.js 中所需的 .js 文件中创建全局排序方法。在 Component.vue 中:单击计算属性上的调用排序。这可能吗?
- python - ImportError: DLL load failed: 安装 Nvidia GPU 后找不到指定的模块
- reactjs - 我正在通过 aboutProps 在链接标签中传递数据,但它返回此错误 TypeError: Cannot read property 'aboutProps' of undefined
- javascript - 如何在不到一小时的时间内获取格式“00:34”moment.js
- python - Python,求解变量的非线性方程
- javascript - Node.js 和 express 需要来自单独文件的路由,仅适用于索引路由
- hive - 如何在 Hive 中对整行进行 md5 处理?