скрипт, который вы запускаете, выглядит так, как будто на месте скомпилировано много вещей.
Я не совсем уверен, действительно ли это намеренно с вашей стороны.не пытаясь обидеть, но я предполагаю, что сценарий либо скопирован, либо вы унаследовали его.
Для простоты мой подход состоял бы в том, чтобы не компилировать вещи в контейнере докера, если это действительно не выгодно / необходимо, ив некоторой степени доверяя менеджеру системы.
например: функции zip предоставляются в пакете php-zip
, уже скомпилированном для использования в качестве модуля в php.Функции xml предоставляются в пакете php-xml
, а также уже скомпилированы.аналогично для многих других пакетов.(Я не знаю, будет ли установка этих пакетов автоматически включать их, я не удивлюсь, так или иначе. Если, однако, они не включены по умолчанию, вам придется написать сценарий, который их разрешает ... но я 'Я вполне уверен, вы можете найти учебники или что-то).Скомпилированные библиотеки намного меньше, чем библиотеки плюс их исходный код (и исходный код скомпилированного в зависимостях).
, так как я не знаю ваш точный проект, может быть, для этого нужно по какой-то причине все это скомпилироватьможет быть, это получить последний процент (или двадцать ...) производительности, поэтому у всех строк в этом скрипте может быть очень веская причина.
Итак, в конце концов, все сводится к методу проб и ошибок.
, чтобы ответить на ваши вопросы:
- Есть ли более тонкое решение для этого?
, скорее всего, с использованием предварительно скомпилированногоstuff
- Можно ли удалить то, что нужно только во время сборки?
скорее всего, вам теоретически нужны только скомпилированные библиотеки
- Могу ли я заменить их на что-то меньшее?
см. Выше, но может иметь непредвиденные последствия.если вы заботитесь о производительности, сравните производительность с оригинальной и предварительно скомпилированной версией.для проверки правильности (если вы сомневаетесь в этом) отправьте все запросы как в исходную, так и в предварительно скомпилированную версию и проверьте идентичность выходных данных.
- Действительно ли мне нужен пакет 500M (libghc-zlib-dev) читать файлы .xlsx с помощью phpoffice / phpspreadsheet?
вероятно, не
В целом: использование предварительно скомпилированных библиотек может оказать (отрицательное) влияние на производительность,Вы можете собрать вещи, которые вам не нужны.Однако я не ожидал, что выигрыш в производительности стоил бы времени, и я использовал только скомпилированные библиотеки.(Вверху: вы также можете выбрать другое изображение докера - может быть, даже альпийское - которое вообще не нуждается в компиляции и уже имеет большую часть предварительно установленного программного обеспечения и может быть еще меньше - с учетом предполагаемого Исходный докер, который вы расширяете, библиотеки, которые вы добавляете, могут быть уже скомпилированы, и вы просто перекомпилируете их ...)
Это, очевидно, взвешенный ответ.Конечно, есть те, кто любит собирать вещи самостоятельно, и для этого могут быть очень веские причины.