From 490cc6e68999d7f7947d7b1769613966cd16dc44 Mon Sep 17 00:00:00 2001 From: Nuno Souto Date: Thu, 2 Nov 2023 09:36:05 -0400 Subject: [PATCH] Refactored Dockerfile to optimize installation of various PHP extensions and packages, including pdo_mysql, zip, mbstring, gd, opcache, redis, pcntl, bcmath, exif, rdkafka, swoole, intl, memcached, default-mysql-client, pdo_pgsql, pgsql, postgresql-client-12, and postgis, based on conditional install flags. --- octane/Dockerfile | 127 +++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 64 deletions(-) diff --git a/octane/Dockerfile b/octane/Dockerfile index a2d459a..f9eff39 100644 --- a/octane/Dockerfile +++ b/octane/Dockerfile @@ -104,77 +104,76 @@ RUN apt-get update; \ libzstd1 \ procps -RUN \ ########################################### # pdo_mysql ########################################### - docker-php-ext-install pdo_mysql \ +RUN docker-php-ext-install pdo_mysql ########################################### # zip ########################################### - && docker-php-ext-configure zip \ - && docker-php-ext-install zip \ +RUN docker-php-ext-configure zip \ + && docker-php-ext-install zip ########################################### # mbstring ########################################### - && docker-php-ext-install mbstring \ +RUN docker-php-ext-install mbstring ########################################### # GD ########################################### - && docker-php-ext-configure gd \ +RUN docker-php-ext-configure gd \ --prefix=/usr \ --with-jpeg \ --with-webp \ --with-freetype \ - && docker-php-ext-install gd \ + && docker-php-ext-install gd ########################################### # OPcache ########################################### - && if [ ${INSTALL_OPCACHE} = true ]; then \ - docker-php-ext-install opcache; \ - fi \ +RUN if [ ${INSTALL_OPCACHE} = true ]; then \ + docker-php-ext-install opcache; \ + fi ########################################### # PHP Redis ########################################### - && if [ ${INSTALL_PHPREDIS} = true ]; then \ - pecl -q install -o -f redis && \ - rm -rf /tmp/pear && \ - docker-php-ext-enable redis; \ - fi \ +RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ + pecl -q install -o -f redis && \ + rm -rf /tmp/pear && \ + docker-php-ext-enable redis; \ + fi ########################################### # PCNTL ########################################### - && if [ ${INSTALL_PCNTL} = true ]; then \ - docker-php-ext-install pcntl; \ - fi \ +RUN if [ ${INSTALL_PCNTL} = true ]; then \ + docker-php-ext-install pcntl; \ + fi ########################################### # BCMath ########################################### - && if [ ${INSTALL_BCMATH} = true ]; then \ - docker-php-ext-install bcmath; \ - fi \ +RUN if [ ${INSTALL_BCMATH} = true ]; then \ + docker-php-ext-install bcmath; \ + fi ########################################### # Exif ########################################### - && if [ ${INSTALL_EXIF} = true ]; then \ - docker-php-ext-install exif; \ - fi \ +RUN if [ ${INSTALL_EXIF} = true ]; then \ + docker-php-ext-install exif; \ + fi ########################################### # RDKAFKA ########################################### - && if [ ${INSTALL_RDKAFKA} = true ]; then \ - apt-get install -yqq --no-install-recommends --show-progress librdkafka-dev && \ - pecl -q install -o -f rdkafka && \ - docker-php-ext-enable rdkafka; \ - fi \ +RUN if [ ${INSTALL_RDKAFKA} = true ]; then \ + apt-get install -yqq --no-install-recommends --show-progress librdkafka-dev && \ + pecl -q install -o -f rdkafka && \ + docker-php-ext-enable rdkafka; \ + fi ########################################### # OpenSwoole/Swoole extension ########################################### - && if [ ${INSTALL_SWOOLE} = true ]; then \ - apt-get install -yqq --no-install-recommends --show-progress libc-ares-dev && \ - pecl -q install -o -f -D 'enable-openssl="yes" enable-http2="yes" enable-swoole-curl="yes" enable-mysqlnd="yes" enable-cares="yes"' ${SWOOLE_SERVER} && \ - docker-php-ext-enable ${SWOOLE_SERVER}; \ - fi \ +RUN if [ ${INSTALL_SWOOLE} = true ]; then \ + apt-get install -yqq --no-install-recommends --show-progress libc-ares-dev && \ + pecl -q install -o -f -D 'enable-openssl="yes" enable-http2="yes" enable-swoole-curl="yes" enable-mysqlnd="yes" enable-cares="yes"' ${SWOOLE_SERVER} && \ + docker-php-ext-enable ${SWOOLE_SERVER}; \ + fi ########################################### # RoadRunner Binary ########################################### @@ -183,51 +182,51 @@ RUN \ ########################################################################### # Human Language and Character Encoding Support ########################################################################### - && if [ ${INSTALL_INTL} = true ]; then \ - apt-get install -yqq --no-install-recommends --show-progress zlib1g-dev libicu-dev g++ && \ - docker-php-ext-configure intl && \ - docker-php-ext-install intl; \ - fi \ +RUN if [ ${INSTALL_INTL} = true ]; then \ + apt-get install -yqq --no-install-recommends --show-progress zlib1g-dev libicu-dev g++ && \ + docker-php-ext-configure intl && \ + docker-php-ext-install intl; \ + fi ########################################### # Memcached ########################################### - && if [ ${INSTALL_MEMCACHED} = true ]; then \ - pecl -q install -o -f memcached && \ - docker-php-ext-enable memcached; \ - fi \ +RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ + pecl -q install -o -f memcached && \ + docker-php-ext-enable memcached; \ + fi ########################################### # MySQL Client ########################################### - && if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - apt-get install -yqq --no-install-recommends --show-progress default-mysql-client; \ - fi \ +RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ + apt-get install -yqq --no-install-recommends --show-progress default-mysql-client; \ + fi ########################################### # pdo_pgsql ########################################### - && if [ ${INSTALL_PDO_PGSQL} = true ]; then \ - docker-php-ext-install pdo_pgsql; \ - fi \ +RUN if [ ${INSTALL_PDO_PGSQL} = true ]; then \ + docker-php-ext-install pdo_pgsql; \ + fi ########################################### # pgsql ########################################### - && if [ ${INSTALL_PGSQL} = true ]; then \ - docker-php-ext-install pgsql; \ - fi \ +RUN if [ ${INSTALL_PGSQL} = true ]; then \ + docker-php-ext-install pgsql; \ + fi ########################################### # pgsql client and postgis ########################################### - && if [ ${INSTALL_PG_CLIENT} = true ]; then \ - apt-get install -yqq gnupg && \ - . /etc/os-release && \ - echo "deb http://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ - curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ - apt-get update -yqq && \ - apt-get install -yqq --no-install-recommends --show-progress postgresql-client-12 postgis; \ - if [ ${INSTALL_POSTGIS} = true ]; then \ - apt-get install -yqq --no-install-recommends --show-progress postgis; \ - fi && \ - apt-get purge -yqq gnupg; \ - fi +RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \ + apt-get install -yqq gnupg && \ + . /etc/os-release && \ + echo "deb http://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ + curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ + apt-get update -yqq && \ + apt-get install -yqq --no-install-recommends --show-progress postgresql-client-12 postgis; \ + if [ ${INSTALL_POSTGIS} = true ]; then \ + apt-get install -yqq --no-install-recommends --show-progress postgis; \ + fi && \ + apt-get purge -yqq gnupg; \ + fi ########################################### # Include composer