diff --git a/Dockerfile b/Dockerfile index 7cd25e2..dbce672 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,11 +6,12 @@ FROM alpine:3.21 LABEL \ org.opencontainers.image.title="Imagem docker para SEI 5 Alpine em PHP82" - + RUN apk add --no-cache \ apache2 \ apache2-http2 \ gnu-libiconv \ + php82 \ php82-apache2 \ php82-bcmath \ php82-bz2 \ @@ -82,6 +83,24 @@ RUN apk add --no-cache \ COPY --from=surnet/alpine-wkhtmltopdf:3.20.3-0.12.6-small \ /bin/wkhtmltopdf /bin/wkhtmltopdf +## Add suporte ao Oracle +COPY assets/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip /tmp/ +COPY assets/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip /tmp/ +COPY assets/oci8-3.3.0.tgz /tmp/ +COPY assets/install_oci8.sh /tmp/install_oci8.sh + +RUN mkdir -p /opt/oracle/ && \ + unzip /tmp/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip -d /opt/oracle \ + && unzip /tmp/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip -d /opt/oracle \ + && rm -rf /tmp/*.zip \ + && mv /opt/oracle/instantclient_21_11 /opt/oracle/instantclient + +ENV LD_LIBRARY_PATH="/opt/oracle/instantclient" +ENV ORACLE_HOME="/opt/oracle/instantclient/" + +RUN chmod +x /tmp/install_oci8.sh && /tmp/install_oci8.sh +RUN rm -rf /tmp/install_oci8.sh + RUN apk add --no-cache openjdk8 COPY assets/sei.ini /etc/php82/conf.d/99_sei.ini diff --git a/README.md b/README.md index c299f4e..8a37852 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Imagem docker para SEI 5 no PHP82 no Alpine - Versão DEV -Essa imagem serve somente para MySQL, MariaDB e Postgres. +Essa imagem serve somente para MySQL, MariaDB, Postgres e Oracle. -Bancos de oracle e sqlserver não tem suporte. +Bancos sqlserver não tem suporte. diff --git a/assets/install_oci8.sh b/assets/install_oci8.sh new file mode 100644 index 0000000..25f99fb --- /dev/null +++ b/assets/install_oci8.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +apk add --no-cache php82-dev make build-base libaio libc6-compat + +# Extrai o OCI8 +tar -xvzf /tmp/oci8-3.3.0.tgz -C /tmp/ +cd /tmp/oci8-3.3.0 + +# Compilar e instalar OCI8 +/usr/bin/phpize82 +./configure --with-oci8=instantclient,/opt/oracle/instantclient --with-php-config=/usr/bin/php-config82 +make && make install + +# Configuração do PHP +echo "extension=oci8.so" > /etc/php82/oci8.ini +ln -s /etc/php82/oci8.ini /etc/php82/conf.d/oci8.ini diff --git a/assets/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip b/assets/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip new file mode 100644 index 0000000..c5691af Binary files /dev/null and b/assets/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip differ diff --git a/assets/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip b/assets/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip new file mode 100644 index 0000000..2baa02c Binary files /dev/null and b/assets/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip differ diff --git a/assets/oci8-3.3.0.tgz b/assets/oci8-3.3.0.tgz new file mode 100644 index 0000000..700a6fb Binary files /dev/null and b/assets/oci8-3.3.0.tgz differ