|
| 1 | +FROM php:8.3-fpm@sha256:136ef3a7ce42b2892be36b6958e77549bbd423ae8ed3615b8717da60d95c5c2b |
| 2 | +LABEL maintainer="Riddhesh Sanghvi <riddhesh237@gmail.com>, Devarshi Sathiya <devarshisathiya5@gmail.com>" |
| 3 | +LABEL org.label-schema.schema-version="1.0.0" |
| 4 | +LABEL org.label-schema.vendor="EasyEngine" |
| 5 | +LABEL org.label-schema.name="php" |
| 6 | + |
| 7 | +RUN set -ex; \ |
| 8 | + apt-get update; \ |
| 9 | + apt-get install -y --no-install-recommends \ |
| 10 | + imagemagick \ |
| 11 | + less \ |
| 12 | + mariadb-client msmtp \ |
| 13 | + libc-client-dev \ |
| 14 | + libfreetype6-dev \ |
| 15 | + libjpeg-dev \ |
| 16 | + libjpeg62-turbo-dev \ |
| 17 | + libkrb5-dev \ |
| 18 | + libmagickwand-dev \ |
| 19 | + libgraphicsmagick1-dev \ |
| 20 | + libmcrypt-dev \ |
| 21 | + libicu-dev \ |
| 22 | + libmemcached-dev \ |
| 23 | + libxml2-dev \ |
| 24 | + libpng-dev \ |
| 25 | + libzip-dev \ |
| 26 | + libssl-dev \ |
| 27 | + libgmp-dev \ |
| 28 | + unzip \ |
| 29 | + vim \ |
| 30 | + zip |
| 31 | + |
| 32 | +RUN pecl install imagick; \ |
| 33 | + pecl install memcached; \ |
| 34 | + pecl install redis; \ |
| 35 | + pecl install apcu; \ |
| 36 | + # https://github.com/php/pecl-encryption-mcrypt/issues/7#issuecomment-1050994596 |
| 37 | + pecl install -n mcrypt; \ |
| 38 | + pecl install gmagick-2.0.6RC1; \ |
| 39 | + pecl install timezonedb; \ |
| 40 | + docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \ |
| 41 | + docker-php-ext-configure zip; \ |
| 42 | + docker-php-ext-install gd; \ |
| 43 | + PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ |
| 44 | + docker-php-ext-install imap; \ |
| 45 | + docker-php-ext-install mysqli; \ |
| 46 | + docker-php-ext-install pdo_mysql; \ |
| 47 | + docker-php-ext-install opcache; \ |
| 48 | + docker-php-ext-install soap; \ |
| 49 | + docker-php-ext-install intl; \ |
| 50 | + docker-php-ext-install zip; \ |
| 51 | + docker-php-ext-install exif; \ |
| 52 | + docker-php-ext-install calendar; \ |
| 53 | + docker-php-ext-install gmp; \ |
| 54 | + docker-php-ext-install pcntl; \ |
| 55 | + docker-php-ext-install shmop; \ |
| 56 | + docker-php-ext-install sockets; \ |
| 57 | + docker-php-ext-install sysvsem; \ |
| 58 | + docker-php-ext-install sysvshm; \ |
| 59 | + docker-php-ext-install bcmath; \ |
| 60 | + docker-php-ext-enable imagick mcrypt redis timezonedb apcu; \ |
| 61 | + echo "extension=memcached.so" >> /usr/local/etc/php/conf.d/memcached.ini; \ |
| 62 | + echo "extension=gmagick.so" >> /usr/local/etc/php/conf.d/gmagick.ini; \ |
| 63 | + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ |
| 64 | + rm -rf /var/lib/apt/lists/*; |
| 65 | + |
| 66 | +# set recommended PHP.ini settings |
| 67 | +# see https://secure.php.net/manual/en/opcache.installation.php |
| 68 | +RUN { \ |
| 69 | + echo 'opcache.memory_consumption=128'; \ |
| 70 | + echo 'opcache.interned_strings_buffer=8'; \ |
| 71 | + echo 'opcache.max_accelerated_files=4000'; \ |
| 72 | + echo 'opcache.revalidate_freq=2'; \ |
| 73 | + echo 'opcache.fast_shutdown=1'; \ |
| 74 | + echo 'opcache.enable_cli=1'; \ |
| 75 | + } > /usr/local/etc/php/conf.d/opcache-recommended.ini |
| 76 | + |
| 77 | +# Donwload and install composer |
| 78 | +RUN curl -sSL "https://getcomposer.org/installer" | php \ |
| 79 | + && mv composer.phar /usr/local/bin/composer |
| 80 | + |
| 81 | +# Install wp-cli |
| 82 | +RUN curl -O "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ |
| 83 | + && chmod +x wp-cli.phar \ |
| 84 | + && mv wp-cli.phar /usr/local/bin/wp |
| 85 | + |
| 86 | +# Setup a config file |
| 87 | +RUN mkdir -p /etc/wp-cli |
| 88 | +RUN { \ |
| 89 | + echo 'path: /var/www/htdocs'; \ |
| 90 | + } > /etc/wp-cli/config.yml |
| 91 | + |
| 92 | +RUN mkdir /usr/local/etc/misc && \ |
| 93 | +touch /usr/local/etc/misc/msmtprc && \ |
| 94 | +ln -s /usr/local/etc/misc/msmtprc /etc/msmtprc && \ |
| 95 | +chown www-data:www-data /usr/local/etc/misc/msmtprc && \ |
| 96 | +chown www-data:www-data /etc/msmtprc |
| 97 | + |
| 98 | +RUN latest_build=$(curl -s https://download.newrelic.com/php_agent/release/ | grep 'linux.tar.gz' | sed 's/.*"\(.*\)".*/\1/') && \ |
| 99 | +curl -L "https://download.newrelic.com$latest_build" | tar -C /tmp -zx && \ |
| 100 | +export NR_INSTALL_USE_CP_NOT_LN=1 && \ |
| 101 | +export NR_INSTALL_SILENT=1 && \ |
| 102 | +/tmp/newrelic-php5-*/newrelic-install install && \ |
| 103 | +rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* |
| 104 | + |
| 105 | +ENV NR_PORT=/run/newrelic/newrelic.sock |
| 106 | + |
| 107 | +# Setup logs |
| 108 | +RUN mkdir -p /var/log/php; \ |
| 109 | + chown -R www-data: /var/log/php; \ |
| 110 | + rm /usr/local/etc/php-fpm.d/*; |
| 111 | +COPY php.ini /usr/local/etc/php/php.ini |
| 112 | +COPY easyengine.conf /usr/local/etc/php-fpm.d/easyengine.conf |
| 113 | + |
| 114 | +COPY expose_off.ini /usr/local/etc/php/conf.d/expose_off.ini |
| 115 | +COPY bashrc /root/.bashrc |
| 116 | +COPY bashrc /var/www/.bashrc |
| 117 | +COPY docker-entrypoint.sh /usr/local/bin/ |
| 118 | +COPY newrelic.ini /usr/local/etc/php/conf.d/newrelic.ini |
| 119 | +COPY newrelic.ini /data/newrelic.ini |
| 120 | + |
| 121 | +WORKDIR /var/www/htdocs |
| 122 | +USER www-data |
| 123 | + |
| 124 | +ENTRYPOINT ["docker-entrypoint.sh"] |
| 125 | +CMD ["php-fpm"] |
0 commit comments