docker/php/Dockerfile
Rama master · réplica de lectura del repositorio original.
# Version: 0.1.0
# Keep in step with composer.json's `php` floor; override per build/stand.
ARG PHP_VERSION=8.4
FROM php:${PHP_VERSION}-fpm
MAINTAINER Xakki <xakki@ya.ru>
ARG DEBIAN_FRONTEND=noninteractive
ENV REFRESHED_AT="2023–01–05"
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-utils cron mc htop dialog bash-completion curl wget bash nano git lsb-release apt-transport-https \
ca-certificates gnupg2 tzdata man zip unzip pkg-config
RUN apt-get install -y \
libjpeg62-turbo-dev libpng-dev libwebp-dev libfreetype6-dev libgmp-dev \
libicu-dev libzip-dev libmcrypt-dev libssl-dev libonig-dev fontconfig
# libffi-dev libmcrypt4 libmcrypt-dev \
# zlib1g-dev libpq-dev freetds-bin freetds-dev freetds-common \
# graphviz libc-client-dev libcurl4-openssl-dev
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#RUN curl -o composer https://getcomposer.org/download/2.1.3/composer.phar && chmod 0555 composer && mv composer /usr/bin/
RUN if [ "$ENV" = "dev" ] ; then pecl install xdebug && docker-php-ext-enable xdebug ; fi
RUN pecl install redis && docker-php-ext-enable redis
RUN docker-php-ext-configure intl --enable-intl
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
RUN docker-php-ext-install -j$(nproc) gd intl pdo_mysql mbstring zip pcntl opcache sockets bcmath
###Possible values for ext-name:
### bcmath bz2 calendar ctype curl dba dom enchant exif ffi fileinfo filter ftp gd gettext gmp hash iconv imap intl json ldap mbstring mysqli
### oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline reflection
### session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer xml xmlreader xmlwriter xsl zend_test zip
RUN docker-php-source delete && apt-get autoremove --purge -y && apt-get autoclean -y && apt-get clean -y
RUN echo "access.log = /dev/null" >> /usr/local/etc/php-fpm.d/docker.conf
# A user crontab (no user field), so it must stay out of /etc/cron.d, whose
# system-crontab format would reject every line ("bad username").
COPY cronjob /etc/emailer.crontab
RUN chmod 0644 /etc/emailer.crontab && crontab /etc/emailer.crontab
# SIGQUIT = php-fpm's graceful stop: in-flight requests finish first.
STOPSIGNAL SIGQUIT
#printenv > /etc/environment &&
# Debian cron daemonizes itself; exec hands PID 1 to php-fpm (with `cron -f`
# in front, the foreground cron blocked and php-fpm never started).
CMD ["sh", "-c", "cron && exec docker-php-entrypoint php-fpm"]