缺失/lib64/ld-linux-x86-64.so.2的docker php容器和wkhtmltopdf。

3
尝试在新的Mac Pro with m1上使用Docker运行php:8.0.12-fpm,但无法在php容器中运行wkhtmltopdf。
我的php Dockerfile如下:
FROM arm64v8/php:8.0-fpm

USER root

# change user and groups ids
RUN usermod --uid=1000 www-data && \
    groupmod --gid=1000 www-data && \
    # fix permissions
    chown -R www-data:www-data /var/www/


RUN apt update && apt install -y libxrender1 && apt install -y libfontconfig1 && apt install -y libfontconfig

RUN curl "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz" -L -o "wkhtmltopdf.tar.xz" \
    && tar Jxvf wkhtmltopdf.tar.xz \
    && mv wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf


USER www-data

尝试运行wkhtmltopdf时,总是出现“qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory”的错误。还在某个地方读到需要这样安装:
RUN apt-get install -y libfontconfig wkhtmltopdf

但是很多选项不受支持(例如--footer-font-size

还尝试构建FROM php:8.0-fpm,但什么也没有改变。


我有同样的问题! - Benjamin Ellis
1个回答

0
将 --platform=linux/amd64 添加到 docker 文件的 FROM 行。
FROM --platform=linux/amd64 php:8.0-fpm

如果构建过程从请求基础镜像为larm64v8/php:8.0-fpm或php:8.0-fpm开始,那么生成的基础镜像将具有/lib64/ld-linux-x86-64.so.2,表明通过qemu-x86_64在ARM64 CPU上模拟所有内容为x86_64。因此,如果可以从ARM64镜像开始并在构建过程中编译任何无法作为ARM64二进制文件安装在容器内的软件,则后续容器在基于M1的Mac上运行时可能会更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接