Докер, Alpine, IonCube, PHP7 FPM

Я пытаюсь Dockerize приложение PHP, использующее шифрование IonCube.

Приложение, автономное с IonCube, работает нормально, когда я пытаюсь докеризировать его с помощью простого образа (Docker, Alpine, PHP7.0), его единственная ошибка связана с установкой IonCube.

Предпринятые шаги:

  1. Следуйте отображаемым инструкциям IonCube для установки.
  2. После попытки установки перейдите к каталогам в образе Docker, чтобы убедиться, что COPY выполнен правильно, и все связанные файлы отображаются в образе с помощью «docker exec -it image_name /bin/sh».
  3. Хотя файлы отображаются в соответствии с приведенной выше командой и после проверки изображения, в Powershell отображается сообщение: «Ошибка загрузки /usr/lib/php7/modules/ioncube_loader_lin_7.0.so: ошибка перемещения /usr/lib/php7/modules/ioncube_loader_lin_7 .0.so: __strtod_internal: символ не найден».
  4. Снова получен доступ к образу докера «docker exec -it image_name /bin/sh», и файлы отображаются. Но, похоже, он не может загрузить файл .SO.
  5. Первоначально думал, что это проблема с правами доступа к каталогу, но мне все равно не повезло, когда я изменил каталог на 777.

Кто-нибудь сталкивался с этой проблемой в прошлом?

Содержимое Dockerfile:

FROM richarvey/nginx-php-fpm:php7
COPY web /www
RUN chmod -R 777 /usr/lib/php7/modules
COPY web/ioncube/linux-64 /usr/lib/php7/modules
COPY web/ioncube/linux-64-ini /etc/php7/conf.d
WORKDIR /www

Инструкции IonCube loader-wizard.php:

  1. Download one of the following archives of Loaders for Linux x86-64:
    • tar.gz
    • tar.bz2
  2. Поместите файлы загрузчика в /usr/lib/php7/modules
  3. Отредактируйте файл /etc/php7/conf.d/00_ioncube.ini и перед любыми другими строками zend_extension убедитесь, что включено следующее: zend_extension = /usr/lib/php7/modules/ioncube_loader_lin_7 .0.так
  4. Перезапустите программное обеспечение сервера.

Тем не менее, после выполнения вышеуказанного, проверки наличия соответствующих файлов в соответствующем каталоге в Alpine, затем я уничтожаю образ докера, создаю и запускаю его, но не Joy. Затем я также попытался просто перезапустить образ докера вместо «docker rm image_name», если он уничтожал установленные изменения, связанные с IonCube, но снова не повезло.

Я немного растерялся.

Любые указатели или рекомендации приветствуются.


person Steven Willett    schedule 16.08.2017    source источник


Ответы (1)


Корень проблемы в том, что для IonCube требуется glibc (библиотека GNU C). IonCube упомянул в твите, что это то, что они будут искать для решения в будущем. (Сроки не указаны)

Ссылки: https://en.wikipedia.org/wiki/GNU_C_Library

person Steven Willett    schedule 17.08.2017