Skip to content

Commit 89a1ac6

Browse files
authored
Merge pull request laradock#2276 from jzonta/add_oci8_supports
Added support for OCI8 extension in workspace and php-fpm containers.
2 parents d732318 + 1ded4a6 commit 89a1ac6

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
@@ -91,6 +91,7 @@ services:
9191
- INSTALL_WP_CLI=${WORKSPACE_INSTALL_WP_CLI}
9292
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
9393
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
94+
- INSTALL_OCI8=${WORKSPACE_INSTALL_OCI8}
9495
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
9596
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
9697
- COMPOSER_AUTH=${WORKSPACE_COMPOSER_AUTH}
@@ -183,6 +184,7 @@ services:
183184
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
184185
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
185186
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
187+
- INSTALL_OCI8=${PHP_FPM_INSTALL_OCI8}
186188
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
187189
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
188190
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}

env-example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ WORKSPACE_DRUSH_VERSION=8.1.17
118118
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
119119
WORKSPACE_INSTALL_WP_CLI=false
120120
WORKSPACE_INSTALL_AEROSPIKE=false
121+
WORKSPACE_INSTALL_OCI8=false
121122
WORKSPACE_INSTALL_V8JS=false
122123
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
123124
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
@@ -181,6 +182,7 @@ PHP_FPM_INSTALL_XSL=false
181182
PHP_FPM_INSTALL_GMP=false
182183
PHP_FPM_INSTALL_EXIF=false
183184
PHP_FPM_INSTALL_AEROSPIKE=false
185+
PHP_FPM_INSTALL_OCI8=false
184186
PHP_FPM_INSTALL_PGSQL=false
185187
PHP_FPM_INSTALL_GHOSTSCRIPT=false
186188
PHP_FPM_INSTALL_LDAP=false

php-fpm/Dockerfile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,51 @@ RUN set -xe; \
450450
&& docker-php-ext-enable aerospike \
451451
;fi
452452

453+
###########################################################################
454+
# PHP OCI8:
455+
###########################################################################
456+
457+
ARG INSTALL_OCI8=false
458+
459+
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_12_1"
460+
ENV OCI_HOME="/opt/oracle/instantclient_12_1"
461+
ENV OCI_LIB_DIR="/opt/oracle/instantclient_12_1"
462+
ENV OCI_INCLUDE_DIR="/opt/oracle/instantclient_12_1/sdk/include"
463+
ENV OCI_VERSION=12
464+
465+
RUN if [ ${INSTALL_OCI8} = true ]; then \
466+
# Install wget
467+
apt-get update && apt-get install --no-install-recommends -y wget \
468+
# Install Oracle Instantclient
469+
&& mkdir /opt/oracle \
470+
&& cd /opt/oracle \
471+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-basic-linux.x64-12.1.0.2.0.zip \
472+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-sdk-linux.x64-12.1.0.2.0.zip \
473+
&& unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
474+
&& unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
475+
&& ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
476+
&& ln -s /opt/oracle/instantclient_12_1/libclntshcore.so.12.1 /opt/oracle/instantclient_12_1/libclntshcore.so \
477+
&& ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \
478+
&& rm -rf /opt/oracle/*.zip \
479+
# Install PHP extensions deps
480+
&& apt-get update \
481+
&& apt-get install --no-install-recommends -y \
482+
libaio-dev \
483+
freetds-dev && \
484+
# Install PHP extensions
485+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
486+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \
487+
else \
488+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8; \
489+
fi \
490+
&& docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/opt/oracle/instantclient_12_1,12.1 \
491+
&& docker-php-ext-configure pdo_dblib --with-libdir=/lib/x86_64-linux-gnu \
492+
&& docker-php-ext-install \
493+
pdo_oci \
494+
&& docker-php-ext-enable \
495+
oci8 \
496+
;fi
497+
453498
###########################################################################
454499
# IonCube Loader:
455500
###########################################################################

workspace/Dockerfile

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

759+
###########################################################################
760+
# PHP OCI8:
761+
###########################################################################
762+
763+
USER root
764+
ARG INSTALL_OCI8=false
765+
766+
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_12_1"
767+
ENV OCI_HOME="/opt/oracle/instantclient_12_1"
768+
ENV OCI_LIB_DIR="/opt/oracle/instantclient_12_1"
769+
ENV OCI_INCLUDE_DIR="/opt/oracle/instantclient_12_1/sdk/include"
770+
ENV OCI_VERSION=12
771+
772+
RUN if [ ${INSTALL_OCI8} = true ]; then \
773+
# Install wget
774+
apt-get update && apt-get install --no-install-recommends -y wget \
775+
# Install Oracle Instantclient
776+
&& mkdir /opt/oracle \
777+
&& cd /opt/oracle \
778+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-basic-linux.x64-12.1.0.2.0.zip \
779+
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-sdk-linux.x64-12.1.0.2.0.zip \
780+
&& unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
781+
&& unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
782+
&& ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
783+
&& ln -s /opt/oracle/instantclient_12_1/libclntshcore.so.12.1 /opt/oracle/instantclient_12_1/libclntshcore.so \
784+
&& ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \
785+
&& rm -rf /opt/oracle/*.zip \
786+
# Install PHP extensions deps
787+
&& apt-get update \
788+
&& apt-get install --no-install-recommends -y \
789+
libaio-dev && \
790+
# Install PHP extensions
791+
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
792+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \
793+
else \
794+
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8; \
795+
fi \
796+
&& echo "extension=oci8.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
797+
&& php -m | grep -q 'oci8' \
798+
;fi
799+
759800
###########################################################################
760801
# PHP V8JS:
761802
###########################################################################

0 commit comments

Comments
 (0)