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

Laravel8执行Sail up启动时apt-get安装依赖报错如何解决

错误原因排查
  • 核心问题是你使用的Laravel 8对应版本的Sail,默认采用Ubuntu 21.04作为基础镜像构建容器。Ubuntu 21.04属于非长期支持(非LTS)版本,官方早已停止维护,默认的软件源地址已经迁移到旧源归档区,原有官方源地址失效,因此在执行apt包安装步骤时出现拉取失败、Bad header line类报错。
  • 次要可能性为当前网络环境访问Ubuntu官方源、ondrej/php第三方PPA源的链路不稳定,存在丢包、内容劫持类问题。
解决建议

方案1:替换为LTS版本Ubuntu基础镜像(优先推荐,稳定性最高)

  1. 进入项目目录:cd example-app
  2. 打开项目下docker/8.0/Dockerfile文件(若使用其他PHP版本,打开对应版本号的目录下的Dockerfile)
  3. 将文件首行的FROM ubuntu:21.04修改为FROM ubuntu:22.04(22.04为LTS版本,官方维护周期长,软件源稳定可用)
  4. 找到文件内添加ondrej/php源的代码行,将其中的hirsute(Ubuntu 21.04的版本代号)替换为jammy(Ubuntu 22.04的版本代号)
  5. 清理之前构建失败的Docker缓存:docker system prune -f
  6. 执行命令强制重新构建镜像并启动:./vendor/bin/sail up --build

方案2:替换容器内的Ubuntu软件源为国内镜像

如果不需要更换基础镜像版本,可以在Dockerfile的首个apt-get update命令之前,添加以下两行代码替换默认源为国内镜像:

RUN sed -i "s@http://archive.ubuntu.com/ubuntu/@http://mirrors.aliyun.com/ubuntu/@g" /etc/apt/sources.list
RUN sed -i "s@http://security.ubuntu.com/ubuntu/@http://mirrors.aliyun.com/ubuntu/@g" /etc/apt/sources.list

修改完成后清理Docker缓存,重新执行./vendor/bin/sail up --build即可。

方案3:网络适配调整

如果以上操作完成后仍存在拉取失败问题,可执行以下操作排查:

  • 暂时关闭宿主设备的代理、VPN服务后重新构建
  • 给Docker服务配置国内镜像加速地址,提升资源拉取稳定性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:54:00