Docker: Установка криптографии Python в дистрибутиве Alpine Linux - PullRequest
0 голосов
/ 31 мая 2018

Я немного новичок в Docker и цикле развертывания.

У меня есть приложение Django, которое мы хотели бы развернуть с помощью uWSGI в Docker-контейнере.На самом деле, развертывание работало отлично в течение нескольких недель, но теперь оно сообщает об ошибке ...

Ошибка шва с пакетом криптографии:

build/temp.linux-x86_64-3.6/_openssl.c:52862:10: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
build/temp.linux-x86_64-3.6/_openssl.c: In function '_cffi_f_SSL_set_options':
build/temp.linux-x86_64-3.6/_openssl.c:52895:14: warning: conversion to 'long int' from 'long unsigned int' may change the sign of the result [-Wsign-conversion]
   { result = SSL_set_options(x0, x1); }
              ^~~~~~~~~~~~~~~
build/temp.linux-x86_64-3.6/_openssl.c:52895:14: warning: conversion to 'long unsigned int' from 'long int' may change the sign of the result [-Wsign-conversion]
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-dg_tg9pa/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-my98rwq4/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-dg_tg9pa/cryptography/ 
The command '/bin/sh -c pip install --no-cache-dir -r requirements.txt' returned a non-zero code: 1
ERROR: Job failed: exit code 1

Наш файл Docker выглядит как

FROM python:3-alpine

ENV PYTHONUNBUFFERED 1

WORKDIR /usr/src/app

RUN apk add --no-cache gcc mailcap python3-dev build-base linux-headers pcre-dev postgresql-dev libffi-dev libressl-dev

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

Как я уже упоминал, файл Docker и файл require.txt не изменились между успешной сборкой и неудачной сборкой.(Что самое странное для меня ...)

Единственное, что я мог подумать, это то, что команда

FROM python:3-alpine

принимает другую версию alpine ...

Возможно ли это?Что может быть не так?Как это исправить?

Ответы [ 2 ]

0 голосов
/ 24 июля 2018

Мое исправление было понижено до alpine3.6 (я столкнулся с этой проблемой при использовании alpine3.8).

FROM python:3.6.6-alpine3.6

RUN apk update && apk add libressl-dev postgresql-dev libffi-dev gcc musl-dev python3-dev 
0 голосов
/ 02 июня 2018

Нашли исправление.Указание более старой версии libressl-dev исправило мою сборку DockerHub.

apk add --no-cache libressl-dev=2.6.4-r2

2.7.3-rx в настоящее время является последней версией libressl-dev и является проблемной версией.Попробуйте использовать версию, указанную выше, в вашем Dockerfile, чтобы увидеть, работает ли он для вас.

...