FROM php:8.1-apache

SHELL ["/bin/bash", "-c"]

# Update the local system
RUN apt-get update 

# Install the PHP -> "gd" extension
RUN apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    && docker-php-ext-install gd

# Install the PHP -> "zip" extension
RUN apt-get install -y libzip-dev \
    && docker-php-ext-install zip

# PHP's common extensions
RUN docker-php-ext-install bcmath

RUN docker-php-ext-install pdo pdo_mysql
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

# Install ubuntu -> zip extension ["composer install" requires this]
RUN apt-get install -y vim

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

ARG NODE_VERSION=16
RUN curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \
    && apt-get install -y nodejs \
    && npm install -g npm

ENV WAIT_VERSION 2.7.2
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait

WORKDIR /var/www/html

COPY . .

COPY .env.example .env

RUN composer update \
    && npm install \
    && npm run --cache dev

RUN chmod -R guo+w storage public 

EXPOSE 80

RUN a2enmod rewrite