Dockerfile 在本地运行但在 EB(Elastic Beanstalk)部署(带有 OCI8 扩展的 PHP 7.3)上失败

Dockerfile 在本地运行但在 EB(Elastic Beanstalk)部署(带有 OCI8 扩展的 PHP 7.3)上失败

各位开发人员,大家好!

我已经搜索了 2 个星期如何OCI8 PHP extension在 Elastic Beanstalk 上安装,.ebextensions但遗憾的是我无法搜索到类似的方法。

在我得出结论之前.ebextensions,我首先尝试了 Docker 方法。我使用OCI8 PHP 扩展Oracle 即时客户端依赖项。它在我的本地 Docker Hub 应用程序上运行良好,但当我尝试将其部署到 EB 时出现错误。

在阅读更多信息后,我偶然发现了这篇 AWS 文章:如何在使用 Amazon Linux 1 堆栈运行 PHP 的 Elastic Beanstalk 环境中安装 PECL 7 模块?。由此,我得出结论,对我来说这是最好的选择。现在的问题是几乎找不到与 OCI8、Elastic Beanstalk 和相关的文章.ebextensions

有谁尝试过使用.ebextensions配置文件来安装OCI8 PHP 扩展? 任何线索都会有帮助。

答案1

我们已经能够使用 .ebextensions 安装 oci8 和 oracle 客户端。我们创建了 2 个配置文件,一个用于 oracle 内容:

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'

它可能并不完美,但对我们来说它还是有用的!

问候,

埃里克

相关内容