Laradock编译PHP8.1失败,请求解决方案
解决Laradock编译PHP8.1时Debian仓库GPG密钥验证失败问题
问题根源
你遇到的错误是因为Laradock的PHP8.1镜像基于Debian Bookware发行版,但构建过程中缺失该版本仓库对应的GPG公钥,导致apt-get update无法验证仓库签名而失败。你此前修改nginx的Dockerfile属于无效操作,因为问题出在php-fpm的构建流程中。
解决方案
方案一:手动在PHP8.1的Dockerfile中导入缺失密钥
- 打开Laradock目录下的PHP8.1专用Dockerfile:
laradock/php-fpm/Dockerfile-81 - 在
FROM php:${LARADOCK_PHP_VERSION}-fpm-bookworm这一行之后,添加以下代码段:
RUN set -eux; \ apt-get update -yqq && apt-get install -yqq gnupg2; \ # 导入Debian Bookware仓库所需的缺失密钥 gpg --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 F8D2585B8783D481 54404762BBB6E853 BDE6D2B9216EC7A8; \ gpg --export 0E98404D386FA1D9 6ED0E7B82643E131 F8D2585B8783D481 54404762BBB6E853 BDE6D2B9216EC7A8 | apt-key add -;
- 清理本地Docker缓存,避免旧镜像干扰:
docker system prune -af
- 重新构建php-fpm服务:
docker-compose build php-fpm --no-cache
方案二:升级Laradock到最新版本
官方可能已经修复了Debian密钥的问题,直接升级Laradock即可:
- 进入Laradock目录,拉取最新代码:
git pull origin master
- 备份你当前的
.env文件(避免自定义配置丢失),然后从示例文件重新生成:
cp .env.example .env
- 在新的
.env文件中重新设置PHP_VERSION=8.1 - 重新构建php-fpm服务:
docker-compose build php-fpm
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

