# Dockerfile-app

FROM php:8.1-apache

# Enable the Rewrite Apache mod
RUN cd /etc/apache2/mods-enabled && \
    ln -s ../mods-available/rewrite.load

RUN a2enmod ssl && a2enmod socache_shmcb

# Install required PHP extensions
# -- GD
RUN apt-get update && \
    apt-get install -y libfreetype6-dev git libzip-dev unzip nano supervisor cron ntp && \
    docker-php-ext-configure gd  && \
    docker-php-ext-install -j$(nproc) gd && \
    docker-php-ext-configure sockets  && \
    docker-php-ext-install -j$(nproc) sockets  && \
    docker-php-ext-configure zip  && \
    docker-php-ext-install -j$(nproc) zip
# -- mysql
RUN docker-php-ext-install -j$(nproc) pdo_mysql bcmath

WORKDIR /var/www/html

ENV COMPOSER_HOME /root/.composer
ENV PATH /root/.composer/vendor/bin:$PATH
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

#RUN /usr/local/bin/composer create-project --prefer-dist yiisoft/yii2-app-basic /var/www/html

COPY composer.json .
RUN /usr/local/bin/composer update
COPY . .

RUN chgrp www-data ./runtime && \
    chmod g+w ./runtime/ && \
    chmod 744 yii entrypoint.sh && \
    touch /var/log/cron.log

RUN chmod g+w /var/www/html/runtime/logs &&\
    chown www-data /var/www/html/runtime/logs && chgrp www-data /var/www/html/runtime/logs

RUN crontab cron && rm cron

# Setup Supervisor
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# Copy HTTP server config
COPY 000-default.conf /etc/apache2/sites-available/

# configuration, see https://hub.docker.com/_/php/
# ... the rest of the config is done via entrypoint.sh
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

CMD ./entrypoint.sh
