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

Ubuntu 20.04下Laravel8启动Sail报错laravel.test构建失败如何解决

报错原因
  1. 你当前使用的Laravel Sail版本默认的laravel.test服务基础镜像采用Ubuntu 21.04(代号hirsute),该版本为非LTS版本,2022年1月已结束官方支持,对应的软件源已从Ubuntu官方镜像站点下架,执行apt-get update时无法获取对应版本的软件索引,导致后续依赖包无法安装。
  2. 次要可能为Docker服务的DNS配置异常,导致容器内部无法正常解析archive.ubuntu.com等软件源域名,出现解析临时失败的报错。
解决方案

按优先级推荐以下操作:

方案1:升级Laravel Sail版本

新版本Sail已将默认基础镜像替换为长期支持的Ubuntu LTS版本,直接执行以下命令更新Sail即可:

composer require laravel/sail:^1.21 --dev

更新完成后重新执行./vendor/bin/sail up启动服务即可。

方案2:手动修改Dockerfile适配新Ubuntu版本

如果不想升级Sail版本,可手动修改镜像构建配置:

  • 进入Sail对应PHP版本的运行时目录,默认路径为./vendor/laravel/sail/runtimes/8.1(根据你实际使用的PHP版本调整)
  • 打开目录下的Dockerfile文件,做两处修改:
    • 将首行FROM ubuntu:21.04修改为FROM ubuntu:22.04
    • 将文件中所有的hirsute字符串替换为jammy(Ubuntu 22.04的官方代号)
  • 回到项目根目录,执行以下命令重新构建镜像:
./vendor/bin/sail build --no-cache
  • 构建完成后执行./vendor/bin/sail up启动服务。

方案3:修复Docker DNS配置

如果确认是DNS解析问题导致的报错,修改Docker的全局DNS配置:

  • 编辑/etc/docker/daemon.json文件(如果文件不存在则新建),添加以下配置:
{
  "dns": ["8.8.8.8", "114.114.114.114"]
}
  • 重启Docker服务生效:
sudo systemctl restart docker
  • 重新执行sail up命令启动服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:24:00