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

Apple M1设备上Laravel Sail Docker容器构建失败问题求助

解决M1 Mac上Laravel Sail构建时找不到php8.1-xdebug的问题

我之前在M1 Mac上部署旧Laravel Sail项目时也碰到过这个一模一样的问题,核心原因是Apple Silicon设备是ARM架构,而旧版本的Sail镜像或者默认配置没有适配ARM,导致apt包管理器找不到对应架构的php8.1-xdebug包。下面是几个亲测有效的解决办法:

方法一:给镜像指定ARM架构平台

Laravel Sail从v1.10版本开始已经支持Apple Silicon,但旧项目的docker-compose.yml可能没配置架构信息。你可以直接修改项目根目录的docker-compose.yml,给laravel.test服务添加平台指定:

services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.1
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
            platform: linux/arm64/v8 # 新增这一行,指定ARM架构

修改完成后,执行带缓存清理的构建命令:

sail build --no-cache

方法二:更新Sail到最新适配版本

旧版本的Sail可能没有适配ARM架构的镜像,先更新项目里的Sail依赖:

composer require laravel/sail --dev

如果需要重新生成配置文件(比如之前的配置太旧),可以执行:

php artisan sail:install

然后再重新构建镜像:

sail build --no-cache

方法三:自定义Dockerfile用pecl安装xdebug

如果上面两种方法都不行,你可以绕过apt,用pecl来安装适配当前架构的xdebug——pecl会自动识别系统架构,比apt更灵活:

  1. 在项目根目录新建docker/8.1文件夹,把vendor/laravel/sail/runtimes/8.1/Dockerfile复制到这个新目录里
  2. 打开这个自定义的Dockerfile,找到安装xdebug的那一行(大概是apt-get install -y php8.1-xdebug),替换成:
RUN pecl install xdebug && docker-php-ext-enable xdebug
  1. 修改docker-compose.yml里的构建路径,指向你自定义的Dockerfile:
build:
    context: ./docker/8.1
    dockerfile: Dockerfile
    args:
        WWWGROUP: '${WWWGROUP}'
  1. 最后执行清理缓存的构建命令:
sail build --no-cache

方法四:临时禁用xdebug(应急方案)

如果你暂时不需要调试功能,可以先在.env文件里关闭xdebug的安装:

SAIL_XDEBUG=0

然后执行sail build --no-cache,这样构建时就不会尝试安装xdebug了,等后续需要调试再重新配置。


内容的提问来源于stack exchange,提问作者LaFllamme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:07:37