Apple M3 Pro上Alpine容器装AWS CLI v2遇qemu-x86_64错误求助
解决Alpine容器中安装AWS CLI v2时
ld-linux-x86-64.so.2缺失的问题 问题根源
- 你使用的
gotechnies/php-5.6-alpine基于Alpine Linux,该系统默认采用musl libc,而AWS CLI v2官方x86_64预编译包依赖的是glibc,二者不兼容 - 即使通过
--platform linux/amd64指定架构,QEMU模拟x86_64时,musl环境依然无法识别glibc依赖的/lib64/ld-linux-x86-64.so.2文件
可行解决方案
方案1:在Alpine中添加glibc兼容层后安装AWS CLI v2
在容器内执行以下命令:
# 安装基础工具 apk add --no-cache curl unzip # 安装glibc兼容包 curl -L https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub curl -L https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk -o glibc.apk curl -L https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-bin-2.34-r0.apk -o glibc-bin.apk apk add glibc.apk glibc-bin.apk # 安装AWS CLI v2 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip ./aws/install
方案2:改用AWS CLI v1(适配Alpine的首选方案)
AWS CLI v1为纯Python实现,不依赖glibc,可直接通过Alpine的包管理器安装:
apk add --no-cache aws-cli
验证安装:aws --version
方案3:将安装步骤写入Dockerfile构建镜像(推荐)
避免容器启动后手动操作,把配置集成到镜像构建过程中:
FROM gotechnies/php-5.6-alpine # 安装AWS CLI v1(适配Alpine) RUN apk add --no-cache aws-cli # 如需安装AWS CLI v2,取消以下注释 # RUN apk add --no-cache curl unzip \ # && curl -L https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \ # && curl -L https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk -o glibc.apk \ # && curl -L https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-bin-2.34-r0.apk -o glibc-bin.apk \ # && apk add glibc.apk glibc-bin.apk \ # && curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ # && unzip awscliv2.zip \ # && ./aws/install \ # && rm -rf awscliv2.zip aws glibc.apk glibc-bin.apk
重新构建并启动容器:
docker build --platform linux/amd64 -t php5 . docker run -d --name webserver5 --platform linux/amd64 -p 8888:80 -v /Users/avinda-blrm24/workspace:/sandbox php5
方案4:切换到基于glibc的PHP 5.6镜像
若无需Alpine的轻量特性,可改用debian/ubuntu系的PHP镜像(如php:5.6-apache),这类镜像默认自带glibc,直接安装AWS CLI v2即可:
# 容器内执行 apt update && apt install -y curl unzip curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip ./aws/install
内容的提问来源于stack exchange,提问作者Avinash Dalvi
相关产品推荐
相关产品推荐

