Dockerfile中的高山软件包冲突

时间:2019-06-11 14:45:48

标签: php docker package dockerfile alpine

这就是协议,我目前正在使用Api-Platform docker-compose配置。

我需要添加wkhtmltopdf来生成pdf(duh),但是我从高山v3.9回购中获得的软件包中有一个bug,由于qt5,它会随机导致段错误。

qt5-qtbase-dev=5.12.2-r0发行的should be fixededge回购中包含5.12.3,可能非常适合我。

此qt5版本需要运行icu-libs=64.x-r0,也可以在边缘仓库(64.2中方便地运行),但是构建失败,并显示以下输出:

ERROR: unsatisfiable constraints:
  icu-libs-62.1-r0:
    breaks: world[icu-libs=64.2-r0]
    satisfies: .api-phpexts-rundeps-0[so:libicui18n.so.62]
               .api-phpexts-rundeps-0[so:libicuio.so.62]
               .api-phpexts-rundeps-0[so:libicuuc.so.62]

运行php扩展依赖项的脚本需要icu-libs=62.1-r0

runDeps="$( \
        scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
            | tr ',' '\n' \
            | sort -u \
            | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
    )";

apk add --no-cache --virtual .api-phpexts-rundeps $runDeps;

但是我不能在这里告诉我需要什么旧的icu-lib。有什么建议吗?

[编辑]这是我上次尝试后的Dockerfile: https://gist.github.com/tsadiq/47582ea7d2f8b572cd360d6a9c9329b0

第54-56行是在icu-libs软件包被用于构建上述php依赖项之后的一次尝试。我什至尝试了--force-broken-world选项,但显然不起作用^^'

我以前工作的Dockerfile的唯一区别是第70行上的=5.12.3-r0,这是我需要开始工作的地方。

[第二次编辑] 最后,我无法使它正常工作,并建议我使用QT修补版本从Docker获取完整的wkhtmltopdf二进制文件。问题已解决,但渲染完全关闭,因此我不得不回退到错误的版本,并删除对css libs的所有外部调用,并直接在html源代码中内嵌所有css,这解决了导致上述segfault的问题。 / p>

这不是完全解决方案,但现在可以为我完成工作。

0 个答案:

没有答案