Конфликт альпийских пакетов в Dockerfile - PullRequest
0 голосов
/ 11 июня 2019

Итак, вот в чем дело, сейчас я работаю с конфигурацией docker-compose Api-Platform.

Мне нужно было добавить wkhtmltopdf для генерации pdf (дух.), Но пакет, который я получил от alpine *В репо 1004 * есть ошибка, которая случайным образом вызывает segfault из-за qt5.

Эта проблема должна быть исправлена ​​ на qt5-qtbase-dev=5.12.2-r0, а репо edge содержит 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-libs здесь ... какие-либо предложения?

[Edit] Вот мой Dockerfile, какой он есть после моей последней попытки: https://gist.github.com/tsadiq/47582ea7d2f8b572cd360d6a9c9329b0

Строки 54-56 были попыткой обновить пакет icu-libs после того, как он был использован для построения зависимостей php чуть выше.Я даже попробовал с опцией --force-broken-world, но это, очевидно, не сработало ^^ '

Единственный другой diff с моим ранее работавшим Dockerfile - это =5.12.3-r0 в строке 70, это то, что мне нужно для работы.

[2nd Edit] В конце концов, я не смог заставить его работать, и мне посоветовали получить полный двоичный файл wkhtmltopdf из докера, используя исправленную версию QT.Проблема была решена, но рендеринг был полностью отключен, поэтому мне пришлось откатиться до версии с ошибками и удалить все внешние вызовы для библиотек CSS и вставить все CSS прямо в источник HTML, что решило проблему, вызвавшую вышеупомянутый segfault.

Это не совсем решение, но сейчас оно мне подходит.

...