FROM php:8.3-apache

# Instalar dependências necessárias para as extensões PHP e outras bibliotecas
RUN apt-get update && apt-get install -y \
    unzip \
    git \
    curl \
    libzip-dev \
    libgd-dev \
    libzmq3-dev \
    libpng-dev \
    libjpeg62-turbo-dev \
    libzmq5 \
    libpng16-16 \
    libzip4 \
    libjpeg62-turbo \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Instalar e configurar as extensões PHP
RUN docker-php-ext-configure zip \
    && docker-php-ext-configure gd \
    && docker-php-ext-install -j$(nproc) zip gd pdo_mysql \
    && git clone https://github.com/mkoppanen/php-zmq.git /usr/src/php/ext/zmq \
    && cd /usr/src/php/ext/zmq \
    && phpize \
    && ./configure \
    && make -j$(nproc) \
    && make install \
    && docker-php-ext-enable zmq gd zip pdo_mysql

# Instalar o Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Definir o diretório de trabalho
WORKDIR /var/www/html

# Corrigir permissões do diretório do Apache
RUN mkdir -p /var/www/html && \
    chown -R www-data:www-data /var/www/html && \
    chmod -R 755 /var/www/html

# Configurar Git para permitir o uso do diretório
RUN git config --global --add safe.directory /var/www/html

# Copiar a configuração do Apache
COPY apache.conf /etc/apache2/sites-enabled/000-default.conf

# Copiar a aplicação PHP
COPY . /var/www/html

# Habilitar módulos do Apache
RUN a2enmod rewrite && \
    service apache2 restart

# Verificar se as extensões estão instaladas corretamente
RUN php -m | grep -q 'gd' && \
    php -m | grep -q 'zmq' && \
    php -m | grep -q 'zip' && \
    php -m | grep -q 'pdo_mysql'

# Instalar as dependências do Composer
RUN composer install --no-cache

# Apagar logs de Storage do Laravel
RUN rm -rf /var/www/html/storage/logs/*

# Ajustar permissões de armazenamento
RUN chmod -R 777 /var/www/html/storage/* && chown -R www-data:www-data /var/www/html/storage/*

# Expor porta 80
EXPOSE 80
