ARG PHP_VERSION=7.4.23

FROM php:${PHP_VERSION}-fpm-alpine

# Install packages
RUN apk add --update --no-cache \
  nginx \
  supervisor

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

# Composer install
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN php -r "unlink('composer-setup.php');"

# Nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY conf.d /etc/nginx/conf.d/

# 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"
COPY supervisor.ini /etc/supervisor.d/master.ini

# PHP Configs
ENV PHP_MEMORY_LIMIT="128M" \
    PHP_POST_MAX_SIZE="16M" \
    PHP_UPLOAD_MAX_FILESIZE="16M" \
    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/

#
WORKDIR /var/www
EXPOSE 80
CMD ["/usr/bin/supervisord"]
