До недавнего времени я использовал openssl
библиотеку в python:3.6.6-jessie
образе докера, и все работало как задумано.
Я использую очень простую Dockerfile
конфигурацию, чтобы установить все необходимые зависимости:
FROM python:3.6.6-jessie
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
RUN apt-get -qq update
RUN apt-get install openssl
RUN apt-get upgrade -y openssl
ADD requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
И получить доступ и инициализировать саму библиотеку с помощью этих 2 строк:
openssl = cdll.LoadLibrary("libssl.so")
openssl.SSL_library_init()
С этим подходом все работало замечательно.
На этой неделе я занимался обновлением python и библиотек, и в результате я переключился на новый образ докера:
FROM python:3.7.5
...
Это немедленновынудил openssl
перестать работать из-за этого исключения:
AttributeError: /usr/lib/x86_64-linux-gnu/libssl.so.1.1: undefined symbol: SSL_library_init
Из этой ошибки я могу понять, что libssl
больше не предоставляет метод SSL_library_init
(или так кажется), что довольно страннопроблема, потому что имя инициализатора в документации openssl
такое же.
Я также пытался решить эту проблему с помощью дистрибутивов -stretch
и -buster
, но проблема остается.
Что является правильнымподход для запуска SSL_library_init
в этих новых дистрибутивах? Может быть, требуется дополнительная конфигурация dockerfile?