使用python:3.7-slim构建Docker时mongodb无安装候选,为何3.4版本可行
构建报错:
Package 'mongodb' has no installation candidate,相同配置使用python:3.4-slim作为基础镜像时可正常构建,切换为python:3.7-slim后构建失败。
报错核心原因
- 基础镜像的底层发行版差异:不同版本的python slim镜像基于不同的Debian发行版构建,不同版本Debian的官方源包含的软件包存在差异:
- python:3.4-slim 底层为 Debian 8(Jessie),该版本的Debian官方源默认包含
mongodb安装包,因此可以正常安装 - python:3.7-slim 底层为 Debian 10(Buster)及以上版本,MongoDB 从 Debian 9(Stretch)版本开始就已经从官方默认软件源中移除,因此直接执行
apt install mongodb找不到对应软件包,触发无安装候选的报错。
- python:3.4-slim 底层为 Debian 8(Jessie),该版本的Debian官方源默认包含
可选解决方案
如果需要在python:3.7-slim基础镜像中安装MongoDB,可以手动添加MongoDB官方提供的对应Debian版本的软件源,校验签名后再执行安装操作即可。
内容的提问来源于stack exchange,提问作者KZiovas
相关产品推荐
相关产品推荐

