Dockerfile работает локально, но не работает на EB (Elastic Beanstalk)Развертывание (PHP 7.3 с расширением OCI8)

Добрый день, коллеги-разработчики!

Уже две недели я ищу, как установить OCI8 PHP extensionна Elastic Beanstalk с помощью .ebextensions, но, к сожалению, не могу найти похожие.

Прежде чем я решил использовать .ebextensions, я сначала попробовал подход Docker. Я создал образ с расширением OCI8 PHP и Oracle Instant Client . Он отлично работал в моем локальном приложении Docker Hub, но при попытке развернуть его в EB возникли ошибки.

Прочитав дополнительную информацию, я наткнулся на эту статью AWS:Как установить модули PECL 7 в средах Elastic Beanstalk, работающих на PHP, со стеками Amazon Linux 1? . Из этого я сделал вывод, что это лучший вариант в моем случае. Проблема сейчас в том, что почти нет статей, которые относятся к OCI8, Elastic Beanstalk и .ebextensions.

Кто-нибудь пробовал использовать файлы конфигурации .ebextensionsдля установки расширения OCI8 PHP ? Любая подсказка действительно поможет.

0
задан 2 June 2021 в 15:08
1 ответ

Нам удалось установить oci8 и клиент oracle с помощью расширения.ebextensions. Мы создали 2 конфигурационных файла, один для оракула :

commands:
  01_install_basic:
     command: |
            cd /tmp
            wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-basic-linuxx64.rpm
            rpm -i oracle-instantclient-basic-linuxx64.rpm
     test: '! rpm -qa |grep oracle-instantclient-basic'
  02_install_devel:
    command: |
            cd /tmp
            wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-devel-linuxx64.rpm
            rpm -i oracle-instantclient-devel-linuxx64.rpm
    test: '! rpm -qa |grep oracle-instantclient-devel'
  03_install_sqlplus:
    command: |
            cd /tmp
            wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-sqlplus-linuxx64.rpm
            rpm -i oracle-instantclient-sqlplus-linuxx64.rpm
            export CLIENT_HOME=/usr/lib/oracle/21/client64
            export LD_LIBRARY_PATH=$CLIENT_HOME/lib
            export PATH=$PATH:$CLIENT_HOME/bin
    test: '! rpm -qa |grep oracle-instantclient-sqlplus'

, а второй для модуля oci8

commands:
  02_install_oci8:
    command:  echo '' | /usr/bin/pecl install oci8-2.2.0
    test: '! php -m |grep oci8'

. Возможно, это не идеально, но для нас это работает!

С уважением,

Эрик

0
ответ дан 16 October 2021 в 22:57

Теги

Похожие вопросы