M1芯片Mac Studio中Dockerfile执行apt-get命令失败(Magento 1.9环境)
针对M1芯片Mac上Magento 1.9 Docker构建失败的解决方案
一、解决apt-get update 404错误的临时修复
- 替换Dockerfile中的Debian源为兼容的镜像源:
在apt-get update前添加以下命令,切换到国内镜像源避免源失效问题:RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \ sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list - 若使用旧版Debian分支(如stretch),这类分支已停止官方维护,源地址失效,需切换到归档源:
RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ echo 'Acquire::Check-Valid-Until "false";' >> /etc/apt/apt.conf.d/10-nocheckvalid
二、适配M1芯片的Magento 1.9 Docker配置方案
1. 基础镜像选择
- 优先选用支持
linux/amd64且源可用的镜像,比如php:5.6-apache-buster(Magento 1.9依赖PHP 5.6),避开停止维护的Debian分支。 - 在Dockerfile开头明确指定平台,同时确保Docker Desktop的Rosetta 2已启用:
FROM --platform=linux/amd64 php:5.6-apache-buster
2. 完整Dockerfile示例
FROM --platform=linux/amd64 php:5.6-apache-buster # 替换Debian源为清华镜像 RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \ sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list # 安装Magento 1.9所需的PHP扩展及系统工具 RUN apt-get -y update && \ apt-get -y install libpng-dev libjpeg-dev libmcrypt-dev libxml2-dev libcurl4-openssl-dev && \ docker-php-ext-install pdo_mysql mysqli gd mcrypt xmlrpc curl && \ a2enmod rewrite # 下载并部署Magento 1.9(可替换为本地文件拷贝) RUN curl -O https://github.com/OpenMage/magento-mirror/archive/refs/tags/1.9.4.5.tar.gz && \ tar -xzf 1.9.4.5.tar.gz && \ cp -r magento-mirror-1.9.4.5/* /var/www/html/ && \ rm -rf magento-mirror-1.9.4.5 1.9.4.5.tar.gz # 设置网站目录权限 RUN chown -R www-data:www-data /var/www/html && \ chmod -R 755 /var/www/html
3. Docker Compose配套配置(可选)
创建docker-compose.yml实现一键部署:
version: '3' services: magento: build: . ports: - "8080:80" volumes: - ./html:/var/www/html depends_on: - db db: image: mysql:5.7 platform: linux/amd64 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: magento MYSQL_USER: magento MYSQL_PASSWORD: magento volumes: - db_data:/var/lib/mysql volumes: db_data:
三、额外注意事项
- 开启Docker Desktop的Use Rosetta for x86/amd64 emulation on Apple Silicon选项(路径:设置>Features in development>勾选该选项)。
- 若构建仍失败,执行
docker system prune -a清理Docker缓存后重新尝试。
内容的提问来源于stack exchange,提问作者derekcbaldwin
相关产品推荐
相关产品推荐

