diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d1ea0b7..93d5a8c 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,6 +1,6 @@ name: CI -on: +on: push: branches: '**' tags: '**' @@ -23,7 +23,8 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - sed -i -- '201,272s/=false/=true/g' .env + sed -i -- '202,274s/=false/=true/g' .env + sed -i -- 's/GNUPG=false/GNUPG=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env @@ -32,12 +33,9 @@ jobs: sed -i -- 's/PHALCON=true/PHALCON=false/g' .env sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env - sed -i -- 's/YAML=true/YAML=false/g' .env sed -i -- 's/MSSQL=true/MSSQL=false/g' .env - sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env - sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env docker-compose build ${{ matrix.service }} build-other: diff --git a/docker-compose.yml b/docker-compose.yml index 3d9ed77..56cd7b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,6 +74,7 @@ services: - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} - INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2} - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} + - INSTALL_GNUPG=${WORKSPACE_INSTALL_GNUPG} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} @@ -206,6 +207,7 @@ services: - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} + - INSTALL_GNUPG=${PHP_FPM_INSTALL_GNUPG} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} @@ -307,6 +309,7 @@ services: - INSTALL_GD=${PHP_WORKER_INSTALL_GD} - INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK} - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} + - INSTALL_GNUPG=${PHP_WORKER_INSTALL_GNUPG} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_MONGO=${PHP_WORKER_INSTALL_MONGO} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} @@ -348,6 +351,7 @@ services: - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} - INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD} - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} + - INSTALL_GNUPG=${LARAVEL_HORIZON_INSTALL_GNUPG} - INSTALL_IMAGEMAGICK=${LARAVEL_HORIZON_INSTALL_IMAGEMAGICK} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE} diff --git a/env-example b/env-example index 2600dc9..5e9b867 100644 --- a/env-example +++ b/env-example @@ -123,6 +123,7 @@ WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_BZ2=false WORKSPACE_INSTALL_GMP=false +WORKSPACE_INSTALL_GNUPG=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PCOV=false WORKSPACE_INSTALL_PHPDBG=false @@ -166,7 +167,7 @@ WORKSPACE_INSTALL_SWOOLE=false WORKSPACE_INSTALL_TAINT=false WORKSPACE_INSTALL_LIBPNG=false WORKSPACE_INSTALL_GRAPHVIZ=false -WORKSPACE_INSTALL_IONCUBE=false +WORKSPACE_INSTALL_IONCUBE=false # PHP 8.0 is not supported yet. Reference: https://forum.ioncube.com/viewtopic.php?t=4592 WORKSPACE_INSTALL_MYSQL_CLIENT=false WORKSPACE_INSTALL_PING=false WORKSPACE_INSTALL_SSHPASS=false @@ -212,6 +213,7 @@ PHP_FPM_INSTALL_PHPREDIS=true PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_BZ2=false PHP_FPM_INSTALL_GMP=false +PHP_FPM_INSTALL_GNUPG=false PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_XHPROF=false @@ -240,7 +242,7 @@ PHP_FPM_INSTALL_POSTGIS=false PHP_FPM_INSTALL_PCNTL=false PHP_FPM_INSTALL_CALENDAR=false PHP_FPM_INSTALL_FAKETIME=false -PHP_FPM_INSTALL_IONCUBE=false +PHP_FPM_INSTALL_IONCUBE=false # PHP 8.0 is not supported yet. Reference: https://forum.ioncube.com/viewtopic.php?t=4592 PHP_FPM_INSTALL_RDKAFKA=false PHP_FPM_INSTALL_GETTEXT=false PHP_FPM_INSTALL_XMLRPC=false @@ -277,6 +279,7 @@ PHP_WORKER_INSTALL_GD=false PHP_WORKER_INSTALL_IMAGEMAGICK=false PHP_WORKER_IMAGEMAGICK_VERSION=latest PHP_WORKER_INSTALL_GMP=false +PHP_WORKER_INSTALL_GNUPG=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_MONGO=false PHP_WORKER_INSTALL_BCMATH=false @@ -316,6 +319,7 @@ NGINX_SSL_PATH=./nginx/ssl/ LARAVEL_HORIZON_INSTALL_BZ2=false LARAVEL_HORIZON_INSTALL_GD=false LARAVEL_HORIZON_INSTALL_GMP=false +LARAVEL_HORIZON_INSTALL_GNUPG=false LARAVEL_HORIZON_INSTALL_IMAGEMAGICK=false LARAVEL_HORIZON_IMAGEMAGICK_VERSION=latest LARAVEL_HORIZON_INSTALL_SOCKETS=false diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 10cf90e..e35e81e 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -57,6 +57,23 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2 \ ;fi +########################################################################### +# PHP GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN set -eux; if [ ${INSTALL_GNUPG} = true ]; then \ + apk add --no-cache --no-progress --virtual BUILD_DEPS_PHP_GNUPG gpgme-dev; \ + apk add --no-cache --no-progress gpgme; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + docker-php-ext-enable gnupg; \ + fi + #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 75d9054..6b7d496 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -97,6 +97,21 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ docker-php-ext-install gmp \ ;fi +########################################################################### +# GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN if [ ${INSTALL_GNUPG} = true ]; then \ + apt-get -yq install libgpgme-dev; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + fi + ########################################################################### # SSH2: ########################################################################### @@ -845,13 +860,15 @@ USER root ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -yqq; \ + apt-get install -yqq libyaml-dev; \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ + echo '' | pecl install -a yaml-1.3.2; \ + elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + echo '' | pecl install yaml-2.0.4; \ else \ - pecl install yaml; \ - fi && \ - docker-php-ext-enable yaml \ + echo '' | pecl install yaml; \ + fi \ + && docker-php-ext-enable yaml \ ;fi ########################################################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 0787b7e..5f96e62 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -59,6 +59,23 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2; \ fi +########################################################################### +# PHP GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN set -eux; if [ ${INSTALL_GNUPG} = true ]; then \ + apk add --no-cache --no-progress --virtual BUILD_DEPS_PHP_GNUPG gpgme-dev; \ + apk add --no-cache --no-progress gpgme; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + docker-php-ext-enable gnupg; \ + fi + #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ @@ -226,14 +243,20 @@ RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ && make install \ ;fi - # Install AMQP: ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ - apk --update add rabbitmq-c rabbitmq-c-dev && \ - pecl install amqp && \ + apk del -q openssl openssl-dev && \ + apk --update add -q rabbitmq-c rabbitmq-c-dev && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + printf "\n" | pecl install amqp-1.11.0beta; \ + else \ + printf "\n" | pecl install amqp; \ + fi && \ docker-php-ext-enable amqp && \ + apk del -q rabbitmq-c-dev && \ + apk add --update -q openssl openssl-dev && \ docker-php-ext-install sockets \ ;fi diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 534e4c7..a798525 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -270,6 +270,16 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \ ;fi +########################################################################### +# GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN if [ ${INSTALL_GNUPG} = true ]; then \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-gnupg; \ + fi + ########################################################################### # SSH2: ########################################################################### @@ -568,7 +578,7 @@ ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ apt-get update -yqq && \ - apt-get install -yqq php-redis \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-redis \ ;fi ########################################################################### @@ -691,12 +701,15 @@ RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \ ARG INSTALL_IONCUBE=false RUN if [ ${INSTALL_IONCUBE} = true ]; then \ - # Install the php ioncube loader - curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ - && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ - && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ - && echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/0ioncube.ini \ - && rm -rf /tmp/ioncube* \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") != "8" ]; then \ + # Install the php ioncube loader + curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ + && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ + && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ + && echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ioncube.ini \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ioncube.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/0ioncube.ini \ + && rm -rf /tmp/ioncube* \ + ;fi \ ;fi ########################################################################### @@ -981,7 +994,7 @@ ARG INSTALL_LARAVEL_ENVOY=false RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \ # Install the Laravel Envoy - composer global require "laravel/envoy=~2.0" \ + composer global require laravel/envoy \ ;fi ########################################################################### @@ -1026,13 +1039,13 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \ ########################################################################### # Prestissimo: ########################################################################### -USER laradock - ARG INSTALL_PRESTISSIMO=false RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \ - # Install Prestissimo - composer global require "hirak/prestissimo" \ + if [ $(php -r "echo COMPOSER_VERSION;") = "1" ]; then \ + # Install Prestissimo + composer global require "hirak/prestissimo" \ + ;fi \ ;fi ########################################################################### @@ -1388,12 +1401,14 @@ ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ apt-get install libyaml-dev -y ; \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ + echo '' | pecl install -a yaml-1.3.2; \ + elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + echo '' | pecl install yaml-2.0.4; \ else \ - pecl install yaml; \ - fi && \ - echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ + echo '' | pecl install yaml; \ + fi \ + && echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ ;fi ########################################################################### @@ -1632,8 +1647,6 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ echo "" >> ~/.zshrc \ ;fi -USER root - # #-------------------------------------------------------------------------- # Final Touch