如何在Debian 11 ARM64(M1 Mac Docker环境)安装MongoDB工具?
Debian 11 ARM64 Docker镜像安装MongoDB命令行工具的解决方案
问题根源
你遇到的依赖报错,本质是Debian 11和Ubuntu 20.04的包依赖体系不匹配:你用的是Debian 11镜像,却下载了适配Ubuntu 20.04的ARM64 deb包,Debian 11的APT源里没有满足该包的依赖库。另外你的Dockerfile里还有个小错误——下载的是100.7.0版本的deb,删除时却写了100.6.1的文件名。
可用解决办法
办法1:用二进制压缩包安装(最省心)
跳过deb包的依赖坑,直接用官方预编译的ARM64二进制文件,解压后放到系统命令目录就能用:
FROM debian:11 RUN set -eux; \ # 从MongoDB官方工具下载页获取对应版本的ARM64压缩包 wget -nv [ARM64版MongoDB数据库工具压缩包地址]; \ tar -xzf mongodb-database-tools-arm64-100.7.0.tgz; \ cp mongodb-database-tools-*/bin/* /usr/local/bin/; \ # 清理临时文件 rm -rf mongodb-database-tools-arm64-100.7.0.tgz mongodb-database-tools-*; \ # 验证安装成功 mongodump --version
办法2:换Ubuntu 20.04 ARM64镜像
如果非要用deb包,直接换成Ubuntu 20.04的ARM64镜像,它的APT源完美适配你下载的deb包:
FROM ubuntu:20.04 RUN set -eux; \ apt-get update; \ # 从MongoDB官方工具下载页获取Ubuntu 20.04 ARM64版的deb包 wget -nv [Ubuntu 20.04 ARM64版MongoDB数据库工具deb包地址]; \ apt-get install --no-install-recommends -y ./mongodb-database-tools-ubuntu2004-arm64-100.7.0.deb; \ # 清理临时文件(注意文件名要和下载的一致) rm ./mongodb-database-tools-ubuntu2004-arm64-100.7.0.deb; \ # 清理APT缓存减小镜像体积 apt-get clean; \ rm -rf /var/lib/apt/lists/*; \ # 验证安装 mongodump --version
办法3:源码编译(不推荐)
如果前两种办法都不行,也可以从MongoDB官方仓库拉取源码在Debian 11镜像里编译,但过程繁琐耗时,仅适合特殊场景。
内容的提问来源于stack exchange,提问作者Simon Hewitt
相关产品推荐
相关产品推荐

