blacknoob20/php8.1-fpm-alpine-oci8

By blacknoob20

Updated 10 days ago

PHP 8.1 FPM Linux Alpine 3 con librería oci8 habilitada con oracle instant client 11g

Image
Web Servers
0

116

Imagen php8.1-fpm-alpine-oci8

Basada en la imagen brindada por php.net => php:8.1-fpm-alpine
Utiliza el ORACLE instantclient-basic-linux.x64-11.2.0.4.0, instantclient-sdk-linux.x64-11.2.0.4.0
La opción por defecto LATEST tiene habilitada las extensiones OCI8, ZIP, SOAP, CALENDAR, GD, postgresql, PDO, xdebug, opcache
GITHUB

TAGs

V0.3:

Añadidas

  • PDO_PGSQL
  • PDO_MYSQL
  • PDO_OCI8
V0.2:

Añadidas

  • LDAP
V0.1:

Añadidas

  • CALENDAR
  • GD
V0.0:

Extensiones habilitadas

  • OCI8
  • OCI8_PDO
  • ZIP

Docker Compose File

Colocar en la raíz del proyecto.
services:
  fpm:
    image: php8.1-fpm-alpine-oci8
    command: php -S 0.0.0.0:80
    volumes:
      - $PWD/:/var/www/html/
      - $PWD/../php-8.1-fpm/opt/oracle/client/11.2/network/admin/:/opt/oracle/client/11.2/network/admin/
    environment:
      - TZ=America/Guayaquil
    networks:
      - net
    ports:
      - '89:80'
      - '9443:443'
networks:
  net:

Dockerfile

FROM php:8.1-fpm-alpine as OCI_INSTANT_CLIENT

RUN mkdir -p /opt/oracle/client/minify
RUN mkdir -p /opt/oracle/client/11.2/network/admin

COPY ./oracle_client/* /opt/oracle/client/

ENV ORACLE_HOME=/opt/oracle/client/11.2
ENV LD_LIBRARY_PATH=$ORACLE_HOME
ENV PATH="$ORACLE_HOME:$PATH"

RUN \
 unzip /opt/oracle/client/instantclient-basic-linux.x64-11.2.0.4.0.zip -d /opt/oracle/client &&\
 cp /opt/oracle/client/instantclient_11_2/* /opt/oracle/client/minify &&\
 rm -f\
 /opt/oracle/client/minify/BASIC_README\
 /opt/oracle/client/minify/*.jar &&\
 mv /opt/oracle/client/instantclient_11_2/* $ORACLE_HOME/ &&\
 rm -R -f /opt/oracle/client/instantclient_11_2 &&\
 rm -f /opt/oracle/client/instantclient-basic-linux.x64-11.2.0.4.0.zip &&\
 unzip /opt/oracle/client/instantclient-sdk-linux.x64-11.2.0.4.0.zip -d /opt/oracle/client &&\
 mv /opt/oracle/client/instantclient_11_2/sdk/ $ORACLE_HOME/ &&\
 rm -R -f /opt/oracle/client/instantclient_11_2/ &&\
 rm -f /opt/oracle/client/instantclient-sdk-linux.x64-11.2.0.4.0.zip &&\
 ln -s $ORACLE_HOME/libclntsh.so.11.1 /opt/oracle/client/minify/libclntsh.so &&\
 ln -s $ORACLE_HOME/libocci.so.11.1 /opt/oracle/client/minify/libocci.so &&\
 ln -s $ORACLE_HOME/libclntsh.so.11.1 $ORACLE_HOME/libclntsh.so &&\
 ln -s $ORACLE_HOME/libocci.so.11.1 $ORACLE_HOME/libocci.so

LABEL glibc="Instalación glibc libaio libnsl libzip-dev zip"

RUN apk update &&\
 apk add --no-cache\
 libpq\
 libaio\
 libnsl\
 libzip-dev\
 zip\
 libxml2-dev\
 libpng-dev\
 postgresql-dev\
 openldap-dev &&\
 ln -s /usr/lib/libnsl.so.3.0.0 $ORACLE_HOME/libnsl.so.1

LABEL oci8="Instalación PHP 8.1 ext OCI8"

RUN \
 docker-php-ext-configure pdo_pgsql &&\
 docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME &&\
 docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,$ORACLE_HOME &&\
 docker-php-ext-install -j$(nproc) oci8 zip soap calendar gd ldap pdo_oci pdo_mysql pdo_pgsql

FROM php:8.1-fpm-alpine

COPY --from=OCI_INSTANT_CLIENT /opt/oracle/client/minify/ /opt/oracle/client/11.2/
COPY --from=OCI_INSTANT_CLIENT /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/

ENV ORACLE_HOME=/opt/oracle/client/11.2
ENV LD_LIBRARY_PATH=$ORACLE_HOME
ENV PATH="$ORACLE_HOME:$PATH"

RUN apk update &&\
 apk add --no-cache\
 libzip-dev\
 libpng-dev\
 openldap-dev\
 libnsl\
 libaio\
 libpq &&\
 ln -s /usr/lib/libnsl.so.3.0.0 $ORACLE_HOME/libnsl.so.1

RUN docker-php-ext-enable zip soap calendar gd ldap oci8 pdo_oci pdo_mysql pdo_pgsql

COPY ./ini/* $PHP_INI_DIR/conf.d/
# Cambiar nombre php.ini-development a php.ini
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

Docker Pull Command

docker pull blacknoob20/php8.1-fpm-alpine-oci8