因为docker php需要连oracle,创建一个新镜像有oci8 和 pdo_oci扩展
Dockerfile(alpine版)
FROM php:7.4.21-fpm-alpine3.13 # 更换阿里云的镜像源 RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories ; fi # 编译oci8和pdo_oci扩展需要用到instantclient # 在官网下载 https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-21.1.0.0.0.zip COPY ./instantclient_21_1 /usr/lib/instantclient_21_1 # 环境变量一定要设置为对应的地址 ENV ORACLE_BASE /usr/lib/instantclient_21_1 ENV LD_LIBRARY_PATH /usr/lib/instantclient_21_1 ENV TNS_ADMIN /usr/lib/instantclient_21_1 ENV ORACLE_HOME /usr/lib/instantclient_21_1 # 下面创建的软链接一定不能少 # Install Instantclient Basic Light Oracle and Dependencies RUN apk add -U --no-cache autoconf g++ make libaio libnsl libc6-compat curl && ln -s /usr/lib/libnsl.so.2 /usr/lib/libnsl.so.1 && ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && ln -s /lib64/ld-linux-x86-64.so.2 /usr/lib/ld-linux-x86-64.so.2 && ln -sf /usr/lib/instantclient_21_1/libclntsh.so.21.1 /usr/lib/instantclient_21_1/libclntsh.so && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/instantclient_21_1/ && docker-php-ext-install oci8 && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/instantclient_21_1/ && docker-php-ext-install pdo_oci && cd /usr/local/bin && curl -sS https://getcomposer.org/installer | php && mv composer.phar composer && chmod +x composer
关键还是下载 instantclient 客户端,配置软链。然后安装oci8和pdo_oci扩展即可。
其他扩展:略



