Windows10 WSL2环境下Sail+Docker构建Laravel项目失败求助
问题根因
构建laravel.test服务时,容器内部无法正常访问国外ondrej/php PPA源下载PHP8.0相关依赖包,和sudo权限、本地Docker缓存无关联。
解决方案
按优先级依次尝试以下操作:
- 配置WSL2 Ubuntu与Docker的国内镜像加速
- 进入WSL2 Ubuntu 20.04终端,执行命令备份原有APT源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 编辑
/etc/apt/sources.list文件,替换内容为清华/阿里等国内Ubuntu 20.04镜像源,保存后执行sudo apt update验证源可用性 - 打开Docker Desktop设置,进入
Docker Engine配置页,在registry-mirrors数组中添加国内Docker镜像地址,保存后重启Docker生效
- 进入WSL2 Ubuntu 20.04终端,执行命令备份原有APT源:
- 替换Sail Dockerfile中的PPA源为国内镜像
- 打开项目目录下的
docker/8.0/Dockerfile文件 - 找到
add-apt-repository ppa:ondrej/php这一行,在下方新增一行源替换命令,修改后内容如下:
add-apt-repository ppa:ondrej/php -y sed -i "s|http://ppa.launchpad.net/ondrej/php/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ondrej/php/ubuntu|g" /etc/apt/sources.list.d/*.list - 打开项目目录下的
- 调整Sail使用的PHP版本
在项目根目录.env文件中新增配置SAIL_PHP_VERSION=8.2,切换为更高版本的PHP避免8.0版本的源访问问题
所有修改完成后,执行无缓存重建命令再启动服务即可:
./vendor/bin/sail build --no-cache ./vendor/bin/sail up -d
内容的提问来源于stack exchange,提问作者Commongrate
相关产品推荐
相关产品推荐

