繁体   English   中英

dockerfile 设置 php 连接到 Oracle

[英]dockerfile setup for php connecting to Oracle

我在设置 php 连接到 Oracle 数据库时遇到问题,遇到以下消息:

Step 4/7 : ADD instantclient-basic-linux.x64-12.1.0.2.0.zip /opt/oracle
ERROR: Service 'php-apache' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder164874438/instantclient-basic-linux.x64-12.1.0.2.0.zip: no such file or directory

Dockerfile

FROM php:7.4-apache
RUN docker-php-ext-install pdo pdo_mysql mysqli

ORACLE oci

RUN mkdir /opt/oracle \
    && cd /opt/oracle
ADD instantclient-basic-linux.x64-12.1.0.2.0.zip /opt/oracle
ADD instantclient-sdk-linux.x64-12.1.0.2.0.zip /opt/oracle

安装 Oracle 即时客户端

RUN  unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
    && unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
    && ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
    && ln -s /opt/oracle/instantclient_12_1/libclntshcore.so.12.1 /opt/oracle/instantclient_12_1/libclntshcore.so \
    && ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \
    && rm -rf /opt/oracle/*.zip

安装 Oracle 扩展

RUN echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8 \ 
      && docker-php-ext-enable \
               oci8 \ 
       && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/opt/oracle/instantclient_12_1,12.1 \
       && docker-php-ext-install \
               pdo_oci 

您的错误听起来像是简单的路径或没有您认为的 zip 文件。

我建议您查看 Oracle 的 PHP 的示例 Dockerfile: https://github.com/oracle/docker-images/tree/master/OracleLinuxDevelopers例如此Z3254677A7917C6C01FZFB8C6571FZFB8C65212

另请查看Docker 的 Oracle 数据库应用程序在 Node.js 和 ZA7F5F35426B927411FC9231B56中的即时客户端。

您真的需要使用 Instant Client 12.1 吗? Oracle Instant Client 19c 可以连接到 Oracle DB 11.2 或更高版本,并且更容易获得(无需点击即可下载)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM