You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:12:34