InsecurePlatformWarning при создании изображения Docker

Я получаю это предупреждение при создании образа Docker:

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. 

Несколько источников (например, InsecurePlatformWarning: истинный объект SSLContext недоступен. Это предотвращает надлежащую настройку SSL-протокола urllib3 ) говорят, что pip install pyopenssl ndg-httpsclient pyasn1 исправит эту проблему. Но я получаю предупреждение, как только pip пытается установить pyopenssl.

Вот мой файл Dockerfile:

 FROM ubuntu:14.04 # Install packages RUN apt-get update && apt-get install -y \ git \ libmysqlclient-dev \ mysql-server \ nginx \ python-dev \ python-mysqldb \ python-setuptools \ supervisor \ vim RUN easy_install pip # Handle urllib3 InsecurePlatformWarning RUN apt-get install -y libffi-dev libssl-dev RUN pip install pyopenssl ndg-httpsclient pyasn1 # ...more 

One Solution collect form web for “InsecurePlatformWarning при создании изображения Docker”

Похоже, что это предупреждение ожидается при запуске pip: http://github.com/pypa/pip/issues/2681, но когда вы устанавливаете pyopenssl ndg-httpsclient pyasn1 , вы не будете получать предупреждения при использовании запросов python.

Например, если я создаю этот файл Dockerfile:

 FROM ubuntu:14.04 # Install packages RUN apt-get update && apt-get install -y \ git \ libmysqlclient-dev \ mysql-server \ nginx \ python-dev \ python-mysqldb \ python-setuptools \ supervisor \ vim RUN easy_install pip RUN pip install requests 

а затем запустите его внутри контейнера:

 root@b2759f79f947:/# python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> url = "https://www.digicert.com/" >>> r = requests.get(url) /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:100: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning 

Как вы можете видеть, я получаю предупреждение. Но если я добавлю эти строки в файл Dockerfile:

 RUN apt-get install -y libffi-dev libssl-dev RUN pip install pyopenssl ndg-httpsclient pyasn1 

и запускать те же команды python, я больше не получаю предупреждение.

Если вы действительно не хотите предупреждения при установке pyopenssl, вы можете установить переменную окружения: PYTHONWARNINGS="ignore:a true SSLContext object" как предлагается здесь: https://github.com/pypa/pip/pull/3109

Тогда ваш Dockerfile будет выглядеть так:

 FROM ubuntu:14.04 # Install packages RUN apt-get update && apt-get install -y \ git \ libmysqlclient-dev \ mysql-server \ nginx \ python-dev \ python-mysqldb \ python-setuptools \ supervisor \ vim RUN easy_install pip # Handle urllib3 InsecurePlatformWarning RUN apt-get install -y libffi-dev libssl-dev ENV PYTHONWARNINGS="ignore:a true SSLContext object" RUN pip install pyopenssl ndg-httpsclient pyasn1 

Другим решением было бы обновление python до 2.7.9

  • Как полностью выполнить сброс запросов?
  • Запросы Python, предупреждение: urllib3.connectionpool: пул соединений заполнен
  • Python urllib3 и как обрабатывать поддержку файлов cookie?
  • Не удается импортировать request.packages.urllib3.util 'Retry'
  • Как заставить запросы python .post () повторить попытку?
  • Почему моя программа зависает после протоколов urllib3 Запуск нового соединения HTTPS?
  • Запросы Python, бросающие SSLError
  • Как напечатать необработанную строку html с помощью urllib3?
  • Python - лучший язык программирования в мире.