FROM --platform=linux/amd64 php:8.2-fpm
ARG TIMEZONE

RUN apt-get update && apt-get install -y \
    openssl \
    ca-certificates \
    unzip \
    nano  \
    mc  \
    supervisor \
    procps \
    wget \
    cron

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions

# Type docker-php-ext-install to see available extensions
#RUN docker-php-ext-install pdo pdo_mysql gd zip intl bcmath \
#    && docker-php-ext-enable opcache

# Set timezone
RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone \
    && printf '[PHP]\ndate.timezone = "%s"\n', ${TIMEZONE} > /usr/local/etc/php/conf.d/tzone.ini \
    && echo '[PHP]\nuser=root\nmemory_limit = 4G\npost_max_size = 32M\nupload_max_filesize = 32M\nmax_execution_time = 300\nopcache.enable=1\nopcache.jit_buffer_size=100M' > /usr/local/etc/php/conf.d/reftrack.ini \
    && echo '[www]\nuser=root\ngroup=root\nlisten = 127.0.0.1:9000\npm = dynamic\npm.max_children = 10\npm.start_servers = 2\npm.min_spare_servers = 1\npm.max_spare_servers = 3\naccess.log = /dev/null' > /usr/local/etc/php-fpm.d/www.conf \
    && "date"

# COMPOSER
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer

RUN install-php-extensions zip pdo_mysql
RUN install-php-extensions intl
RUN install-php-extensions gd
RUN install-php-extensions bcmath soap xsl sockets

RUN echo "* * * * * root exec /bin/bash -c \". /run/supervisord.env; /app/bin/magento cron:run 2>&1 | grep -v \"Ran jobs by schedule\" >> /app/var/log/magento.cron.log \"" >> /etc/crontab

# SUPERVISORD additional config
COPY ./docker/php-fpm/supervisord.conf /etc/supervisor/supervisord.conf
COPY ./docker/php-fpm/phpfpm-worker.conf /etc/supervisor/conf.d
COPY ./docker/php-fpm/cron-worker.conf /etc/supervisor/conf.d
#COPY ./docker/php-fpm/grunt-worker.conf /etc/supervisor/conf.d
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]