FROM almalinux:8

# Install system dependencies
RUN dnf -y update
RUN dnf -y install git curl zip unzip
RUN dnf -y install npm

# Install Apache
RUN dnf -y install httpd httpd-tools

# Install Redis
RUN dnf -y install redis

# Install EPEL
RUN dnf install -y epel-release

# Install REMI repository
RUN dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

# Enable PHP 8.2
RUN dnf module reset php -y
RUN dnf module enable php:remi-8.2 -y

# Install PHP and extensions
RUN dnf install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-opcache php-redis php-memcache php-pgsql

# conf files
COPY php.ini /etc/
COPY httpd.conf /etc/httpd/conf/

# Apache environment variables
ENV APACHE_LOG_DIR=/etc/httpd/logs
ENV APACHE_PID_FILE=/var/run/httpd.pid
ENV APACHE_RUN_DIR=/var/run/httpd
ENV APACHE_LOCK_DIR=/var/lock/httpd

WORKDIR /var/www/html

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

# Create necessary directories for PHP-FPM
RUN mkdir -p /run/php-fpm /var/log/php-fpm

# Create startup script
RUN echo '#!/bin/bash' > /start.sh && \
    echo 'set -e' >> /start.sh && \
    echo 'mkdir -p /run/php-fpm' >> /start.sh && \
    echo 'redis-server --daemonize yes' >> /start.sh && \
    echo 'php-fpm -D' >> /start.sh && \
    echo 'exec httpd -D FOREGROUND' >> /start.sh && \
    chmod +x /start.sh

EXPOSE 80 6379

CMD ["/start.sh"]
