在Docker Alpine中安装熊猫

在Docker Alpine中安装熊猫,第1张

在Docker Alpine中安装熊猫

如果您未绑定Alpine 3.6,则应使用Alpine 3.7(或更高版本)。

在Alpine 3.6上,安装

matplotlib
失败:

Collecting matplotlib  Downloading https://files.pythonhosted.org/packages/26/04/8b381d5b166508cc258632b225adbafec49bbe69aa9a4fa1f1b461428313/matplotlib-3.0.3.tar.gz (36.6MB)    Complete output from command python setup.py egg_info:    Download error on https://pypi.org/simple/numpy/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833) -- Some packages may not be found!    Couldn't find index page for 'numpy' (maybe misspelled?)    Download error on https://pypi.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833) -- Some packages may not be found!    No local packages or working download links found for numpy>=1.10.0

但是,在Alpine
3.7上,它起作用了。这可能是由于

numpy
版本问题(请参阅此处),但是我无法确定。克服了这个问题,软件包构建和安装成功完成-
花了大约30分钟的时间(由于Alpine的musl-libc与Python的Wheels格式不兼容,因此所有使用pip安装的软件包都必须从源代码构建)。

请注意,这是一项重要的更改:您只应在之后删除

build-runtime
虚拟包(
apk del build-runtime
pipinstall
。此外,如果适用,您可以取代numpy的
1.16.1
1.16.2
,这是出厂的版本(否则
1.16.2
将被卸载,
1.16.1
从源头建立,进一步提高构建时间)
-我还没有尝试这样做,虽然。

作为参考,这是我稍作修改的Dockerfile和docker
build输出。

注意:

通常,选择Alpine作为最小化图像大小的基础(Alpine也很光滑,但是由于glibc /
musl而与大陆Linux应用程序存在兼容性问题)。为此,必须从源代码构建Python软件包,因为您会得到一个非常肿的映像-
在进行任何清理之前需要900MB,这也需要很长时间才能构建。可以通过除去所有中间编译工件,构建依赖项等来极大地压缩映像,但是仍然可以。

如果无法获得Python软件包版本,而无需从源代码构建它们,则需要在Alpine上工作,我建议您尝试使用其他更小,更兼容的基本映像,例如

debian-slim
ubuntu

编辑:

在具有附加要求的“编辑3”之后,这里是更新的Dockerfile和Docker
build输出。添加了以下软件包来满足构建依赖性:

postgresql-dev libffi-dev libressl-dev libxml2 libxml2-dev libxslt libxslt-dev libjpeg-turbo-dev zlib-dev

对于由于特定标头而无法构建的软件包,我使用了Alpine的软件包内容搜索来查找丢失的软件包。专门针对

cffi
ffi.h
缺少标头,需要
libffi-dev
打包:https
:
//pkgs.alpinelinux.org/contents?file=ffi.h&path=&name=&branch=v3.7。

或者,当软件包构建失败不是很明显时,可以参考特定软件包的安装说明,例如Pillow。

在压缩之前,新的映像大小为1.04GB。为了减少它,您可以删除Python和pip缓存:

RUN apk del build-runtime &&     find -type d -name __pycache__ -prune -exec rm -rf {} ; &&     rm -rf ~/.cache/pip

使用时,图片大小可减少到661MB

docker build --squash



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4916755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存