Docker-Php-7.4-Alpine镜像无法载入zip扩展的问题
目录
起因
今天我们有同事反映,部门的php基础镜像php-7.4-alpine
无法使用ZipArchive
方法。
报错:
|
|
相同的代码在php-7.2的容器是可以正常运行的。
现象
根据他提供的信息,去查找问题。
- 进入镜像:
|
|
- 查看扩展加载情况
|
|
不存在zip扩展。
这就很奇怪了。
找到php.ini
|
|
是开启了zip扩展的。
- 查看
dockerfile
文件
|
|
解决办法
通过google查找发现问题
php7.4编译参数--enable-zip
变成了--with-zip
,也就是说,zip扩展需要动态加载,不再是直接编译到php的可执行程序中。那么就需要依赖于libzip-dev
.
以前的dockerfile
安装了 libzip-dev
依赖是在--virtual
中,编译完以后会把依赖清除。导致zip依赖不能载入。
换一种写法:
|
|
看懂了吗?
apk add libzip-dev;
这个是直接加载到镜像中,不会被删除哦。
搞定!