1. 背景
容器需要使用自己的rootfs:选择alpine作为精简的minirootfs。
但这个minirootfs没有python3,需要给alpine配置安装独立的python3工具
2. 给alpine配置python3
2.1. 下载alpine
cd/home/project/xxxx/rootfsrm-rfalpinemkdiralpinecdalpinewgethttps://dl-cdn.alpinelinux.org/alpine/v3.21/releases/x86_64/alpine-minirootfs-3.21.0-x86_64.tar.gztar-xzfalpine-minirootfs-3.21.0-x86_64.tar.gzrmalpine-minirootfs-3.21.0-x86_64.tar.gz建议使用v3.21或v3.22,旧版 3.19 已 EOL,仓库索引可能不可用。
2.2. 挂载虚拟文件系统
ifconfig、ping、apk等工具依赖/proc获取内核状态(如/proc/net/dev、/proc/sys/net/...),没有/proc它们无法正常工作。因此进入 chroot 前,先在宿主机上挂载:
cd/home/project/xxx/rootfs/alpinesudomkdir-pproc sys dev // 一般alpine已经拥有,不必创建sudomount-tproc proc ./procsudomount-tsysfs sysfs ./syssudomount--bind/dev ./dev2.3. 复制 DNS 配置
ping解析域名需要/etc/resolv.conf。该文件可能是符号链接,用cp -L强制复制目标文件:
sudocp-L/etc/resolv.conf ./etc/resolv.conf2.4. 进入 chroot 并安装 Python3
sudochroot/home/project/xxx/rootfs/alpine /bin/sh# 验证网络ping-c2www.baidu.com# 安装 Python3apkadd--no-cache python3# 退出exit