Docker построить минимальное изображение python 2,7 с помощью скрапа - PullRequest
0 голосов
/ 03 марта 2020

Я делаю docker изображение с Python 2.7 Alpine и scrap, чтобы экспортировать мой сценарий в мою команду.

Это мой докер-файл:

FROM python:2.7-alpine
WORKDIR /usr/src/app
RUN python -m pip install parse pyOpenSSL scrapy scrapy-xlsx
COPY scriptv1/ .

И когда Я docker build -t python_space .

это выглядит так:

log error docker

Сначала я подумал, что речь идет о криптографии, не находящей libssl-dev и вот почему я делаю "python -m pip install [...] pyOpenSSL [...]".

У меня нет сведений о том, что происходит не так: /.

Спасибо за чтение!

РЕДАКТИРОВАТЬ: я добавил RUN apk add build-base для сборки с g cc, выскакивает другая ошибка.

Вторые журналы: logerror2

Ответы [ 2 ]

3 голосов
/ 03 марта 2020

Это Dockerfile создаст образ в два этапа, сохраняя зависимости сборки в одноразовом образе:

FROM library/python:2.7-alpine AS build

RUN apk add gcc musl-dev libffi-dev libressl-dev

RUN mkdir /wheels
WORKDIR /wheels

RUN pip wheel cryptography==2.8


FROM library/python:2.7-alpine
RUN apk add libressl
COPY --from=build /wheels /wheels
RUN pip install /wheels/*.whl

Полученный образ имеет размер 93 МБ.

Возможно, вы захотите адаптировать его к вашим точным пакетам и построить зависимости.

В вашем случае достаточно добавить собственные строки в end из Dockerfile.

1 голос
/ 03 марта 2020

Не альпийский Dockerfile, использующий python:2.7-slim, работает нормально, поскольку он может использовать множество linux колес.

FROM python:2.7-slim
RUN python -m pip install parse pyOpenSSL scrapy scrapy-xlsx
$ docker build .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM python:2.7-slim
 ---> 426ba9523d99
Step 2/2 : RUN python -m pip install parse pyOpenSSL scrapy scrapy-xlsx
 ---> Running in 853a571c7a66
# ... snip ...
Successfully installed Automat-20.2.0 PyDispatcher-2.0.5 PyHamcrest-1.10.1 Twisted-19.10.0 attrs-19.3.0 cffi-1.14.0 constantly-15.1.0 cryptography-2.8 cssselect-1.1.0 enum34-1.1.9 et-xmlfile-1.0.1 functools32-3.2.3.post2 hyperlink-19.0.0 idna-2.9 incremental-17.5.0 ipaddress-1.0.23 jdcal-1.4.1 lxml-4.5.0 openpyxl-2.6.4 parse-1.15.0 parsel-1.5.2 protego-0.1.16 pyOpenSSL-19.1.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pycparser-2.19 queuelib-1.5.0 scrapy-1.8.0 scrapy-xlsx-0.1.1 service-identity-18.1.0 six-1.14.0 w3lib-1.21.0 zope.interface-4.7.1

Полученное изображение размером 232 МБ.

...