繁体   English   中英

Docker 使用scrapy 构建最小图像python 2.7

[英]Docker build minimal image python 2.7 with scrapy

我正在使用 Python 2.7 Alpine 和 scrapy 制作 docker 图像,以将我的脚本导出给我的团队。

这是我的 dockerfile:

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 .

它是这样的:

日志错误泊坞窗

起初我认为这是关于密码学没有找到 libssl-dev 这就是为什么我在做“python -m pip install [...] pyOpenSSL [...]”。

我没有关于出了什么问题的线索:/。

谢谢阅读 !

编辑:我添加了 RUN apk add build-base 以便使用 gcc 进行构建,会弹出不同的错误。

第二个日志: 日志错误2

Dockerfile将分两个阶段构建映像,将构建依赖项保留在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 MB。

您可能希望使其适应您的确切包并构建依赖项。

在您的情况下,将您自己的行添加到Dockerfile末尾就足够了。

使用python:2.7-slim的非高山 Dockerfile 工作正常,因为它可以使用 manylinux 轮子。

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

生成的图像为 232MB。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM