FROM php:7.4-fpm-alpine

#
RUN set -ex

# Crond
RUN echo '* * * * * /usr/local/bin/php /var/www/artisan schedule:run' > /etc/crontabs/root

# Supervisor
ENV QUEUE_WORKER_NUM="1" \
    QUEUE_WORKER_SLEEP="3" \
    QUEUE_WORKER_TRIES="1" \
    DAEMON_CABINET_MANAGER_WORKER_NUM="1"
RUN apk add --update --no-cache supervisor
COPY supervisor.ini /etc/supervisor.d/master.ini

# PHP Configs
ENV PHP_MEMORY_LIMIT="128M" \
    PHP_POST_MAX_SIZE="8M" \
    PHP_UPLOAD_MAX_FILESIZE="8M" \
    PHP_OPCACHE_ENABLE="1" \
    PHP_OPCACHE_MEMORY_CONSUMPTION="192" \
    PHP_OPCACHE_MAX_ACCELERATED_FILES="10000" \
    PHP_OPCACHE_MAX_WASTED_PERCENTAGE="10"
COPY limits.ini opcache.ini $PHP_INI_DIR/conf.d/

# PostgreSQL Client
RUN apk add --update --no-cache postgresql-client

# PHP Extensions
ADD https://github.com/mlocati/docker-php-extension-installer/releases/download/1.5.25/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && sync && \
    install-php-extensions pdo_mysql opcache zip

#
WORKDIR /var
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN chmod 777 ~/.composer/
CMD ["/usr/bin/supervisord"]
