Skip to content

一个报错引发的思考

之前在本地跑一个Django项目,下载依赖模块pycrypto失败,鼓捣了好久才成功,没过几天我将该Django项目在使用docker部署时,这个模块又出现问题,这让我很是头疼。 问题要从docker的Python镜像开始说起。我使用的是python:3.6-alpine惊醒,该镜像以小巧、轻量、安全著称,但也因此是我本次pycrypto模块安装失败的元凶。解决办法是替换为python:3.6-buster镜像。

在这个问题解决,项目成功部署后,我对docker中不同的Python镜像有了兴趣,想要了解一下其中不同的镜像有哪些不同,以及什么场景选择什么镜像,避免以后遇到麻烦。

Alpine

docker提供了几种不同的python镜像,根据使用情况不同, 每种镜像的大小、支持的功能也不尽相同。也因此会导致我们在安装某些依赖包时遇到问题。

see also:

为你的 Python 应用选择一个最好的 Docker 映像 | 用 Alpine 会让 Python Docker 的构建慢 50 倍 | 「译」如何选择python项目的基础docker镜像