linux - 尝试在 Docker 映像上使用 PyODBC 时找不到 libssl.so.1.0.2 和 libssl.so.1.0.2
问题描述
我有一个使用 python:3(基于 debian)的 docker 文件。我正在按照微软文档安装 PyODBC 的驱动程序。
FROM python:3
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
apt-get update && \
ACCEPT_EULA=Y apt-get install msodbcsql17 unixodbc-dev -y
我可以构建图像,但是在尝试运行它时出现错误:Can't open lib /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
我跑了:ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
并得到说找不到以下两个库的输出:
libcrypto.so.1.0.2 => not found
libssl.so.1.0.2 => not found
我也尝试过dpkg --search libssl
,dpkg --search libsslcrypto
结果如下:
libssl1.1:amd64: /usr/lib/x86_64-linux-gnu/libssl.so.1.1
libssl1.1:amd64: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
从ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
那里取走其他图书馆/usr/lib/x86_64-linux-gnu/
对 docker/linux 来说非常新,所以我如何安装libcrypto.so.1.0.2
和libssl.so.1.0.2
/或降级 '/usr/lib/x86_64-linux-gnu/' 中的版本,以便它们可以用于msodbcsql17
(已经尝试过apt get -y install libssl1.0=1.0.2
)?
解决方案
docker 镜像python:3
似乎是在 Debian 10 上构建的。
您正在安装的软件包存储库似乎是为 Debian 9 构建的,并且似乎与 Debian 10 不兼容。
您可能应该将存储库与为 Debian 10 构建的软件包一起使用以获得兼容的软件包。
推荐阅读
- reactjs - React js过滤器选择
- django - 通过示例在 django 书的 /blog/ 处获取 NoReverseMatch
- elasticsearch - 在 Elasticsearch 中基于空格索引连字符
- c# - sslStream.AuthenticateAsClientAsync 不接受客户端证书
- php - 创建购物车时如何删除未定义的错误?
- oracle - 迄今为止的 Oracle PL Sql 过程
- ruby-on-rails - 在 Rails 中按名称调用参数化测试
- netlogo - 根据您的经验,哪些 NetLogo 模型最适合教授人口增长和自然选择?
- angular - 来自打字稿函数的Angular div innerHTML多次调用
- complexity-theory - 如何手动查找井字游戏中决策树的复杂度?