Skip to content

Commit 559acc2

Browse files
committed
Added support for OCI8 extension in workspace and php-fpm containers. PHP 5.6, 7.0, 7.1, 7.2 and 7.3
1 parent cb910c5 commit 559acc2

4 files changed

Lines changed: 90 additions & 0 deletions

File tree

docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ services:
8383
- INSTALL_WP_CLI=${WORKSPACE_INSTALL_WP_CLI}
8484
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
8585
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
86+
- INSTALL_OCI8=${WORKSPACE_INSTALL_OCI8}
8687
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
8788
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
8889
- COMPOSER_AUTH=${WORKSPACE_COMPOSER_AUTH}
@@ -165,6 +166,7 @@ services:
165166
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
166167
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
167168
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
169+
- INSTALL_OCI8=${PHP_FPM_INSTALL_OCI8}
168170
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
169171
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
170172
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}

env-example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ WORKSPACE_DRUSH_VERSION=8.1.17
113113
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
114114
WORKSPACE_INSTALL_WP_CLI=false
115115
WORKSPACE_INSTALL_AEROSPIKE=false
116+
WORKSPACE_INSTALL_OCI8=false
116117
WORKSPACE_INSTALL_V8JS=false
117118
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
118119
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
@@ -170,6 +171,7 @@ PHP_FPM_INSTALL_XSL=false
170171
PHP_FPM_INSTALL_GMP=false
171172
PHP_FPM_INSTALL_EXIF=false
172173
PHP_FPM_INSTALL_AEROSPIKE=false
174+
PHP_FPM_INSTALL_OCI8=false
173175
PHP_FPM_INSTALL_PGSQL=false
174176
PHP_FPM_INSTALL_GHOSTSCRIPT=false
175177
PHP_FPM_INSTALL_LDAP=false

php-fpm/Dockerfile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,51 @@ RUN set -xe; \
423423
&& docker-php-ext-enable aerospike \
424424
;fi
425425

426+
###########################################################################
427+
# PHP OCI8:
428+
###########################################################################
429+
430+
ARG INSTALL_OCI8=false
431+
432+
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_12_1"
433+
ENV OCI_HOME="/opt/oracle/instantclient_12_1"
434+
ENV OCI_LIB_DIR="/opt/oracle/instantclient_12_1"
435+
ENV OCI_INCLUDE_DIR="/opt/oracle/instantclient_12_1/sdk/include"
436+
ENV OCI_VERSION=12
437+
438+
RUN if [ ${INSTALL_OCI8} = true ]; then \
439+
# Install wget
440+
apt-get update && apt-get install --no-install-recommends -y wget \
441+
# Install Oracle Instantclient
442+
&& mkdir /opt/oracle \
443+
&& cd /opt/oracle \
444+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-basic-linux.x64-12.1.0.2.0.zip \
445+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-sdk-linux.x64-12.1.0.2.0.zip \
446+
&& unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
447+
&& unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
448+
&& ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
449+
&& ln -s /opt/oracle/instantclient_12_1/libclntshcore.so.12.1 /opt/oracle/instantclient_12_1/libclntshcore.so \
450+
&& ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \
451+
&& rm -rf /opt/oracle/*.zip \
452+
# Install PHP extensions deps
453+
&& apt-get update \
454+
&& apt-get install --no-install-recommends -y \
455+
libaio-dev \
456+
freetds-dev && \
457+
# Install PHP extensions
458+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
459+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \
460+
else \
461+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8; \
462+
fi \
463+
&& docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/opt/oracle/instantclient_12_1,12.1 \
464+
&& docker-php-ext-configure pdo_dblib --with-libdir=/lib/x86_64-linux-gnu \
465+
&& docker-php-ext-install \
466+
pdo_oci \
467+
&& docker-php-ext-enable \
468+
oci8 \
469+
;fi
470+
426471
###########################################################################
427472
# IonCube Loader:
428473
###########################################################################

workspace/Dockerfile

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,47 @@ RUN set -xe; \
708708
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
709709
;fi
710710

711+
###########################################################################
712+
# PHP OCI8:
713+
###########################################################################
714+
715+
USER root
716+
ARG INSTALL_OCI8=false
717+
718+
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_12_1"
719+
ENV OCI_HOME="/opt/oracle/instantclient_12_1"
720+
ENV OCI_LIB_DIR="/opt/oracle/instantclient_12_1"
721+
ENV OCI_INCLUDE_DIR="/opt/oracle/instantclient_12_1/sdk/include"
722+
ENV OCI_VERSION=12
723+
724+
RUN if [ ${INSTALL_OCI8} = true ]; then \
725+
# Install wget
726+
apt-get update && apt-get install --no-install-recommends -y wget \
727+
# Install Oracle Instantclient
728+
&& mkdir /opt/oracle \
729+
&& cd /opt/oracle \
730+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-basic-linux.x64-12.1.0.2.0.zip \
731+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-sdk-linux.x64-12.1.0.2.0.zip \
732+
&& unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
733+
&& unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
734+
&& ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
735+
&& ln -s /opt/oracle/instantclient_12_1/libclntshcore.so.12.1 /opt/oracle/instantclient_12_1/libclntshcore.so \
736+
&& ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \
737+
&& rm -rf /opt/oracle/*.zip \
738+
# Install PHP extensions deps
739+
&& apt-get update \
740+
&& apt-get install --no-install-recommends -y \
741+
libaio-dev && \
742+
# Install PHP extensions
743+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
744+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \
745+
else \
746+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8; \
747+
fi \
748+
&& echo "extension=oci8.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
749+
&& php -m | grep -q 'oci8' \
750+
;fi
751+
711752
###########################################################################
712753
# PHP V8JS:
713754
###########################################################################

0 commit comments

Comments
 (0)