Я пытаюсь Dockerize приложение PHP, использующее шифрование IonCube.
Приложение, автономное с IonCube, работает нормально, когда я пытаюсь докеризировать его с помощью простого образа (Docker, Alpine, PHP7.0), его единственная ошибка связана с установкой IonCube.
Предпринятые шаги:
- Следуйте отображаемым инструкциям IonCube для установки.
- После попытки установки перейдите к каталогам в образе Docker, чтобы убедиться, что COPY выполнен правильно, и все связанные файлы отображаются в образе с помощью «docker exec -it image_name /bin/sh».
- Хотя файлы отображаются в соответствии с приведенной выше командой и после проверки изображения, в Powershell отображается сообщение: «Ошибка загрузки /usr/lib/php7/modules/ioncube_loader_lin_7.0.so: ошибка перемещения /usr/lib/php7/modules/ioncube_loader_lin_7 .0.so: __strtod_internal: символ не найден».
- Снова получен доступ к образу докера «docker exec -it image_name /bin/sh», и файлы отображаются. Но, похоже, он не может загрузить файл .SO.
- Первоначально думал, что это проблема с правами доступа к каталогу, но мне все равно не повезло, когда я изменил каталог на 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:
- Download one of the following archives of Loaders for Linux x86-64:
- tar.gz
- tar.bz2
- Поместите файлы загрузчика в /usr/lib/php7/modules
- Отредактируйте файл /etc/php7/conf.d/00_ioncube.ini и перед любыми другими строками zend_extension убедитесь, что включено следующее: zend_extension = /usr/lib/php7/modules/ioncube_loader_lin_7 .0.так
- Перезапустите программное обеспечение сервера.
Тем не менее, после выполнения вышеуказанного, проверки наличия соответствующих файлов в соответствующем каталоге в Alpine, затем я уничтожаю образ докера, создаю и запускаю его, но не Joy. Затем я также попытался просто перезапустить образ докера вместо «docker rm image_name», если он уничтожал установленные изменения, связанные с IonCube, но снова не повезло.
Я немного растерялся.
Любые указатели или рекомендации приветствуются.