Docker执行docker-compose up -d提示jpeglib.h not found错误如何解决
问题根因
- 参数拼写错误:你在
docker-php-ext-configure命令中错误将freetype拼写为freestyle,导致依赖路径匹配失效 - 版本参数不兼容:
--with-freetype --with-jpeg这种无路径的参数是PHP 7.4及以上版本的GD扩展配置规则,你使用的PHP7.2版本不支持该写法,才会触发png.h找不到的报错 - 缺少png路径配置:PHP7.2配置GD时需要显式指定png库的路径,你之前的配置没有加这一项
解决方案
直接替换你Dockerfile中GD相关的配置段为以下内容即可:
RUN docker-php-ext-install iconv mbstring opcache # 适配PHP7.2版本的GD扩展配置,修正拼写错误并补全png路径 RUN docker-php-ext-configure gd \ --with-freetype-dir=/usr/include/ \ --with-jpeg-dir=/usr/include/ \ --with-png-dir=/usr/include/ RUN docker-php-ext-install -j$(nproc) gd
可选优化
你可以在apt安装依赖的命令末尾加上&& rm -rf /var/lib/apt/lists/*,清理apt缓存减小镜像体积。
验证操作
修改完成后执行docker-compose build --no-cache强制重新构建镜像,再执行docker-compose up -d启动即可。
内容的提问来源于stack exchange,提问作者ItsMe
相关产品推荐
相关产品推荐

