# Use the official PHP image based on Alpine Linux
FROM php:5.6-fpm-alpine

# Install system dependencies and PHP extensions
RUN apk --update --no-cache add \
    nginx \
    libpng-dev \
    libjpeg-turbo-dev \
    freetype-dev \
    libzip-dev \
    zip \
    unzip \
    libmcrypt-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd pdo pdo_mysql zip mcrypt

# Set the working directory in the container
WORKDIR /var/www

# Clear cache
# RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Copy the Laravel application files to the container
COPY . .


# Set appropriate permissions for Laravel storage and bootstrap cache
RUN chown -R www-data:www-data storage bootstrap

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

# Install Laravel dependencies
RUN composer install --no-plugins --no-scripts

# Generate Laravel application key
RUN php artisan key:generate

# Create directory for the socket and set permissions
RUN mkdir -p /run/php && chown www-data:www-data /run/php

# Copy the www.conf file to PHP-FPM pool.d directory
COPY www.conf /usr/local/etc/php-fpm.d/www.conf

# Expose port 9000 and start php-fpm server
EXPOSE 9000
CMD ["php-fpm"]