首页 > 解决方案 > 尝试在 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 libssldpkg --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.2libssl.so.1.0.2/或降级 '/usr/lib/x86_64-linux-gnu/' 中的版本,以便它们可以用于msodbcsql17(已经尝试过apt get -y install libssl1.0=1.0.2)?

标签: linuxdockerdebianpyodbc

解决方案


docker 镜像python:3似乎是在 Debian 10 上构建的。

您正在安装的软件包存储库似乎是为 Debian 9 构建的,并且似乎与 Debian 10 不兼容。

您可能应该将存储库与为 Debian 10 构建的软件包一起使用以获得兼容的软件包。


推荐阅读