From fdf990f57a22256a777b73f9fe84132b14c80e5c Mon Sep 17 00:00:00 2001 From: Lucas Macedo Date: Mon, 2 Feb 2026 10:47:14 -0300 Subject: [PATCH 1/2] feat: add PHP 8.4 support with OCI8 extension - Add 4 new Docker image variants for PHP 8.4: * 8.4-oci8-nginx * 8.4-oci8-nginx-prod * 8.4-oci8-swoole-nginx * 8.4-oci8-swoole-nginx-prod - Update template to use PECL for PHP >= 8.4 * OCI8 extension no longer available in PHP core for 8.4+ * Install via PECL with automatic cleanup of build dependencies * Maintain backward compatibility with older versions using docker-php-ext - Update fwd-template.json with PHP 8.4 build configurations - Update kool.yml with PHP 8.4 build commands - Update README.md with PHP 8.4 documentation and links All images tested and verified with OCI8 3.4.1 and Oracle Client 11.2.0.4.0 --- 8.4-oci8-nginx-prod/Dockerfile | 22 ++++++++++++ 8.4-oci8-nginx/Dockerfile | 22 ++++++++++++ 8.4-oci8-swoole-nginx-prod/Dockerfile | 22 ++++++++++++ 8.4-oci8-swoole-nginx/Dockerfile | 22 ++++++++++++ README.md | 10 ++++++ fwd-template.json | 48 +++++++++++++++++++++++++++ kool.yml | 4 +++ template/Dockerfile.blade.php | 23 +++++++++++++ 8 files changed, 173 insertions(+) create mode 100644 8.4-oci8-nginx-prod/Dockerfile create mode 100644 8.4-oci8-nginx/Dockerfile create mode 100644 8.4-oci8-swoole-nginx-prod/Dockerfile create mode 100644 8.4-oci8-swoole-nginx/Dockerfile diff --git a/8.4-oci8-nginx-prod/Dockerfile b/8.4-oci8-nginx-prod/Dockerfile new file mode 100644 index 0000000..e959444 --- /dev/null +++ b/8.4-oci8-nginx-prod/Dockerfile @@ -0,0 +1,22 @@ +FROM kooldev/php:8.4-nginx-prod + +ENV LD_LIBRARY_PATH /usr/local/instantclient +ENV ORACLE_HOME /usr/local/instantclient + +# Download and unarchive Instant Client v11 +RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ + curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ + unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ + ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ + ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ + ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ + ln -s ${ORACLE_HOME}/lib* /usr/lib && \ + ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ + ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ + echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ + docker-php-ext-enable oci8 && \ + apk del $PHPIZE_DEPS diff --git a/8.4-oci8-nginx/Dockerfile b/8.4-oci8-nginx/Dockerfile new file mode 100644 index 0000000..98d17a0 --- /dev/null +++ b/8.4-oci8-nginx/Dockerfile @@ -0,0 +1,22 @@ +FROM kooldev/php:8.4-nginx + +ENV LD_LIBRARY_PATH /usr/local/instantclient +ENV ORACLE_HOME /usr/local/instantclient + +# Download and unarchive Instant Client v11 +RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ + curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ + unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ + ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ + ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ + ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ + ln -s ${ORACLE_HOME}/lib* /usr/lib && \ + ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ + ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ + echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ + docker-php-ext-enable oci8 && \ + apk del $PHPIZE_DEPS diff --git a/8.4-oci8-swoole-nginx-prod/Dockerfile b/8.4-oci8-swoole-nginx-prod/Dockerfile new file mode 100644 index 0000000..b5e28b5 --- /dev/null +++ b/8.4-oci8-swoole-nginx-prod/Dockerfile @@ -0,0 +1,22 @@ +FROM kooldev/php:8.4-swoole-nginx-prod + +ENV LD_LIBRARY_PATH /usr/local/instantclient +ENV ORACLE_HOME /usr/local/instantclient + +# Download and unarchive Instant Client v11 +RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ + curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ + unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ + ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ + ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ + ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ + ln -s ${ORACLE_HOME}/lib* /usr/lib && \ + ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ + ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ + echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ + docker-php-ext-enable oci8 && \ + apk del $PHPIZE_DEPS diff --git a/8.4-oci8-swoole-nginx/Dockerfile b/8.4-oci8-swoole-nginx/Dockerfile new file mode 100644 index 0000000..04df998 --- /dev/null +++ b/8.4-oci8-swoole-nginx/Dockerfile @@ -0,0 +1,22 @@ +FROM kooldev/php:8.4-swoole-nginx + +ENV LD_LIBRARY_PATH /usr/local/instantclient +ENV ORACLE_HOME /usr/local/instantclient + +# Download and unarchive Instant Client v11 +RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ + curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ + unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ + ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ + ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ + ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ + ln -s ${ORACLE_HOME}/lib* /usr/lib && \ + ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ + ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ + echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ + docker-php-ext-enable oci8 && \ + apk del $PHPIZE_DEPS diff --git a/README.md b/README.md index aec89f7..279f845 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,16 @@ This image is based on [kooldev/php](https://github.com/kool-dev/docker-php), pl ## Available Tags +### 8.4 + +- [8.4-oci8-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.4-oci8-nginx/Dockerfile) +- [8.4-oci8-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.4-oci8-nginx-prod/Dockerfile) + +### 8.4 with Swoole + +- [8.4-oci8-swoole-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.4-oci8-swoole-nginx/Dockerfile) +- [8.4-oci8-swoole-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.4-oci8-swoole-nginx-prod/Dockerfile) + ### 8.3 - [8.3-oci8-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.3-oci8-nginx/Dockerfile) diff --git a/fwd-template.json b/fwd-template.json index 8e995ee..b71b760 100644 --- a/fwd-template.json +++ b/fwd-template.json @@ -192,6 +192,54 @@ "path": "template/Dockerfile" } ] + }, + { + "name": "8.4-oci8-nginx-prod", + "data": { + "from": "kooldev/php:8.4-nginx-prod" + }, + "files": [ + { + "name": "Dockerfile", + "path": "template/Dockerfile" + } + ] + }, + { + "name": "8.4-oci8-nginx", + "data": { + "from": "kooldev/php:8.4-nginx" + }, + "files": [ + { + "name": "Dockerfile", + "path": "template/Dockerfile" + } + ] + }, + { + "name": "8.4-oci8-swoole-nginx-prod", + "data": { + "from": "kooldev/php:8.4-swoole-nginx-prod" + }, + "files": [ + { + "name": "Dockerfile", + "path": "template/Dockerfile" + } + ] + }, + { + "name": "8.4-oci8-swoole-nginx", + "data": { + "from": "kooldev/php:8.4-swoole-nginx" + }, + "files": [ + { + "name": "Dockerfile", + "path": "template/Dockerfile" + } + ] } ] } diff --git a/kool.yml b/kool.yml index 2a2fa0a..a088c9b 100644 --- a/kool.yml +++ b/kool.yml @@ -22,3 +22,7 @@ scripts: - docker build --pull -t kooldev/php:8.3-oci8-swoole-nginx 8.3-oci8-swoole-nginx - docker build --pull -t kooldev/php:8.3-oci8-swoole-nginx-prod 8.3-oci8-swoole-nginx-prod - docker build --pull -t kooldev/php:8.3-oci8-swoole-nginx-prod 8.3-oci8-swoole-nginx-prod + - docker build --pull -t kooldev/php:8.4-oci8-nginx 8.4-oci8-nginx + - docker build --pull -t kooldev/php:8.4-oci8-nginx-prod 8.4-oci8-nginx-prod + - docker build --pull -t kooldev/php:8.4-oci8-swoole-nginx 8.4-oci8-swoole-nginx + - docker build --pull -t kooldev/php:8.4-oci8-swoole-nginx-prod 8.4-oci8-swoole-nginx-prod diff --git a/template/Dockerfile.blade.php b/template/Dockerfile.blade.php index 0c78699..2ce8d22 100644 --- a/template/Dockerfile.blade.php +++ b/template/Dockerfile.blade.php @@ -4,6 +4,28 @@ ENV ORACLE_HOME /usr/local/instantclient # Download and unarchive Instant Client v11 +@php + preg_match('/:(\d+\.\d+)/', $from, $matches); + $phpVersion = isset($matches[1]) ? (float)$matches[1] : 0; +@endphp +@if($phpVersion >= 8.4) +RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ + curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ + curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ + unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ + unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ + ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ + ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ + ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ + ln -s ${ORACLE_HOME}/lib* /usr/lib && \ + ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ + ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ + echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ + docker-php-ext-enable oci8 && \ + apk del $PHPIZE_DEPS +@else RUN apk add --update libaio libnsl && \ curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ @@ -19,3 +41,4 @@ ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ docker-php-ext-install oci8 +@endif From f1e9f0458493effd40b29bbc437c14cb6e1b3a5d Mon Sep 17 00:00:00 2001 From: Lucas Macedo Date: Mon, 2 Feb 2026 11:22:45 -0300 Subject: [PATCH 2/2] Version 8.0 and 8.1 has been removed due to incompatibility issues. --- .github/workflows/ci-cd.yml | 2 +- 8.0-oci8-nginx-prod/Dockerfile | 21 ------ 8.0-oci8-nginx/Dockerfile | 21 ------ 8.0-oci8-swoole-nginx-prod/Dockerfile | 21 ------ 8.0-oci8-swoole-nginx/Dockerfile | 21 ------ 8.1-oci8-nginx-prod/Dockerfile | 21 ------ 8.1-oci8-nginx/Dockerfile | 21 ------ 8.1-oci8-swoole-nginx-prod/Dockerfile | 21 ------ 8.1-oci8-swoole-nginx/Dockerfile | 21 ------ README.md | 20 ------ fwd-template.json | 96 --------------------------- kool.yml | 9 --- template/Dockerfile.blade.php | 23 ------- 13 files changed, 1 insertion(+), 317 deletions(-) delete mode 100644 8.0-oci8-nginx-prod/Dockerfile delete mode 100644 8.0-oci8-nginx/Dockerfile delete mode 100644 8.0-oci8-swoole-nginx-prod/Dockerfile delete mode 100644 8.0-oci8-swoole-nginx/Dockerfile delete mode 100644 8.1-oci8-nginx-prod/Dockerfile delete mode 100644 8.1-oci8-nginx/Dockerfile delete mode 100644 8.1-oci8-swoole-nginx-prod/Dockerfile delete mode 100644 8.1-oci8-swoole-nginx/Dockerfile diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 645df58..dcce877 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - version: ['8.0', '8.1', '8.2', '8.3'] + version: ['8.2', '8.3', '8.4'] steps: - name: Checkout code diff --git a/8.0-oci8-nginx-prod/Dockerfile b/8.0-oci8-nginx-prod/Dockerfile deleted file mode 100644 index 0e9a574..0000000 --- a/8.0-oci8-nginx-prod/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.0-nginx-prod - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.0-oci8-nginx/Dockerfile b/8.0-oci8-nginx/Dockerfile deleted file mode 100644 index ee39086..0000000 --- a/8.0-oci8-nginx/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.0-nginx - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.0-oci8-swoole-nginx-prod/Dockerfile b/8.0-oci8-swoole-nginx-prod/Dockerfile deleted file mode 100644 index 742a8aa..0000000 --- a/8.0-oci8-swoole-nginx-prod/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.0-swoole-nginx-prod - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.0-oci8-swoole-nginx/Dockerfile b/8.0-oci8-swoole-nginx/Dockerfile deleted file mode 100644 index 0c0f8e9..0000000 --- a/8.0-oci8-swoole-nginx/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.0-swoole-nginx - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.1-oci8-nginx-prod/Dockerfile b/8.1-oci8-nginx-prod/Dockerfile deleted file mode 100644 index 5b3b242..0000000 --- a/8.1-oci8-nginx-prod/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.1-nginx-prod - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.1-oci8-nginx/Dockerfile b/8.1-oci8-nginx/Dockerfile deleted file mode 100644 index e441486..0000000 --- a/8.1-oci8-nginx/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.1-nginx - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.1-oci8-swoole-nginx-prod/Dockerfile b/8.1-oci8-swoole-nginx-prod/Dockerfile deleted file mode 100644 index e19dc40..0000000 --- a/8.1-oci8-swoole-nginx-prod/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.1-swoole-nginx-prod - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/8.1-oci8-swoole-nginx/Dockerfile b/8.1-oci8-swoole-nginx/Dockerfile deleted file mode 100644 index 9d23c6f..0000000 --- a/8.1-oci8-swoole-nginx/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM kooldev/php:8.1-swoole-nginx - -ENV LD_LIBRARY_PATH /usr/local/instantclient -ENV ORACLE_HOME /usr/local/instantclient - -# Download and unarchive Instant Client v11 -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 diff --git a/README.md b/README.md index 279f845..245039a 100644 --- a/README.md +++ b/README.md @@ -36,26 +36,6 @@ This image is based on [kooldev/php](https://github.com/kool-dev/docker-php), pl - [8.2-oci8-swoole-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.2-oci8-swoole-nginx/Dockerfile) - [8.2-oci8-swoole-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.2-oci8-swoole-nginx-prod/Dockerfile) -### 8.1 - -- [8.1-oci8-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.1-oci8-nginx/Dockerfile) -- [8.1-oci8-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.1-oci8-nginx-prod/Dockerfile) - -### 8.1 with Swoole - -- [8.1-oci8-swoole-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.1-oci8-swoole-nginx/Dockerfile) -- [8.1-oci8-swoole-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.1-oci8-swoole-nginx-prod/Dockerfile) - -### 8.0 - -- [8.0-oci8-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.0-oci8-nginx/Dockerfile) -- [8.0-oci8-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.0-oci8-nginx-prod/Dockerfile) - -### 8.0 with Swoole - -- [8.0-oci8-swoole-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/8.0-oci8-swoole-nginx/Dockerfile) -- [8.0-oci8-swoole-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/8.0-oci8-swoole-nginx-prod/Dockerfile) - There are also older versions available like [7.4-oci8-nginx](https://github.com/kool-dev/docker-php-oci8/blob/main/7.4-oci8-nginx/Dockerfile), [7.4-oci8-nginx-prod](https://github.com/kool-dev/docker-php-oci8/blob/main/7.4-oci8-nginx-prod/Dockerfile). ## Environment Variables diff --git a/fwd-template.json b/fwd-template.json index b71b760..eb1c997 100644 --- a/fwd-template.json +++ b/fwd-template.json @@ -1,102 +1,6 @@ { "output": ".", "builds": [ - { - "name": "8.0-oci8-nginx-prod", - "data": { - "from": "kooldev/php:8.0-nginx-prod" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.0-oci8-nginx", - "data": { - "from": "kooldev/php:8.0-nginx" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.0-oci8-swoole-nginx-prod", - "data": { - "from": "kooldev/php:8.0-swoole-nginx-prod" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.0-oci8-swoole-nginx", - "data": { - "from": "kooldev/php:8.0-swoole-nginx" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.1-oci8-nginx-prod", - "data": { - "from": "kooldev/php:8.1-nginx-prod" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.1-oci8-nginx", - "data": { - "from": "kooldev/php:8.1-nginx" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.1-oci8-swoole-nginx-prod", - "data": { - "from": "kooldev/php:8.1-swoole-nginx-prod" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, - { - "name": "8.1-oci8-swoole-nginx", - "data": { - "from": "kooldev/php:8.1-swoole-nginx" - }, - "files": [ - { - "name": "Dockerfile", - "path": "template/Dockerfile" - } - ] - }, { "name": "8.2-oci8-nginx-prod", "data": { diff --git a/kool.yml b/kool.yml index a088c9b..7ac0aac 100644 --- a/kool.yml +++ b/kool.yml @@ -3,15 +3,6 @@ scripts: - kool docker fireworkweb/fwd:v1.0 fwd template build: - kool run template - - docker build --pull -t kooldev/php:8.0-oci8-nginx 8.0-oci8-nginx - - docker build --pull -t kooldev/php:8.0-oci8-nginx-prod 8.0-oci8-nginx-prod - - docker build --pull -t kooldev/php:8.0-oci8-swoole-nginx 8.0-oci8-swoole-nginx - - docker build --pull -t kooldev/php:8.0-oci8-swoole-nginx-prod 8.0-oci8-swoole-nginx-prod - - docker build --pull -t kooldev/php:8.1-oci8-nginx 8.1-oci8-nginx - - docker build --pull -t kooldev/php:8.1-oci8-nginx-prod 8.1-oci8-nginx-prod - - docker build --pull -t kooldev/php:8.1-oci8-swoole-nginx 8.1-oci8-swoole-nginx - - docker build --pull -t kooldev/php:8.1-oci8-swoole-nginx-prod 8.1-oci8-swoole-nginx-prod - - docker build --pull -t kooldev/php:8.1-oci8-swoole-nginx-prod 8.1-oci8-swoole-nginx-prod - docker build --pull -t kooldev/php:8.2-oci8-nginx 8.2-oci8-nginx - docker build --pull -t kooldev/php:8.2-oci8-nginx-prod 8.2-oci8-nginx-prod - docker build --pull -t kooldev/php:8.2-oci8-swoole-nginx 8.2-oci8-swoole-nginx diff --git a/template/Dockerfile.blade.php b/template/Dockerfile.blade.php index 2ce8d22..fe4a0c1 100644 --- a/template/Dockerfile.blade.php +++ b/template/Dockerfile.blade.php @@ -3,12 +3,6 @@ ENV LD_LIBRARY_PATH /usr/local/instantclient ENV ORACLE_HOME /usr/local/instantclient -# Download and unarchive Instant Client v11 -@php - preg_match('/:(\d+\.\d+)/', $from, $matches); - $phpVersion = isset($matches[1]) ? (float)$matches[1] : 0; -@endphp -@if($phpVersion >= 8.4) RUN apk add --update libaio libnsl $PHPIZE_DEPS && \ curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ @@ -25,20 +19,3 @@ echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \ docker-php-ext-enable oci8 && \ apk del $PHPIZE_DEPS -@else -RUN apk add --update libaio libnsl && \ - curl -o /tmp/instaclient-basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \ - curl -o /tmp/instaclient-sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \ - unzip -d /usr/local/ /tmp/instaclient-basic.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sdk.zip && \ - unzip -d /usr/local/ /tmp/instaclient-sqlplus.zip && \ - ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \ - ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \ - ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \ - ln -s ${ORACLE_HOME}/lib* /usr/lib && \ - ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus && \ - ln -s /usr/lib/libnsl.so.3 /usr/lib/libnsl.so.1 && \ - docker-php-ext-configure oci8 --with-oci8=instantclient,$ORACLE_HOME && \ - docker-php-ext-install oci8 -@endif