FROM bitnami/laravel:9
USER root

# Use Bitnami's install_packages for most dependencies (faster)
RUN install_packages \
    libpq5 \
    libpq-dev \
    supervisor \
    php8.2-pgsql \
    php8.2-redis \
    nginx

RUN apt-get update && apt-get install -y autoconf wget gcc make && wget https://pecl.php.net/get/redis-6.2.0.tgz && tar xzf redis-6.2.0.tgz && cd redis-6.2.0 && phpize && ./configure && make && make install

# Enable extensions
RUN echo "extension=pdo_pgsql.so" > /opt/bitnami/php/etc/conf.d/pdo_pgsql.ini && \
    echo "extension=pgsql.so" > /opt/bitnami/php/etc/conf.d/pgsql.ini && \
    echo "extension=redis.so" > /opt/bitnami/php/etc/conf.d/redis.ini

RUN echo "extension=pdo_pgsql.so" > /opt/bitnami/php/etc/conf.d/pdo_pgsql.ini && \
    echo "extension=pgsql.so" > /opt/bitnami/php/etc/conf.d/pgsql.ini && \
    echo "extension=redis.so" > /opt/bitnami/php/etc/conf.d/redis.ini

# Setup supervisor
RUN mkdir -p /var/log/supervisor /etc/supervisor/conf.d && \
    echo "[include]" >> /etc/supervisor/supervisord.conf && \
    echo "files = /etc/supervisor/conf.d/*.conf" >> /etc/supervisor/supervisord.conf

# Setup FPM
RUN mkdir -p /opt/bitnami/php/etc/php-fpm.d /run/php /var/log/php-fpm

# Setup Nginx
RUN mkdir -p /var/log/nginx /var/cache/nginx && \
    chown -R www-data:www-data /var/log/nginx /var/cache/nginx

RUN mkdir -p /run/php && \
    chown -R www-data:www-data /run/php

# Verify
RUN /opt/bitnami/php/bin/php -m | grep -E "(pgsql|pdo_pgsql|redis)"