簡體   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