# 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 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"]