docker php扩展 oci8+pdo_oci

因为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扩展即可。

其他扩展:略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值