FROM php:8.2-apache

ENV COMPOSER_ALLOW_SUPERUSER=1
ENV APP_DIR=/var/www/html

RUN apt-get update && apt-get install -y \
    git \
    unzip \
    pkg-config \
    libcurl4-openssl-dev \
    libicu-dev \
    libjpeg62-turbo-dev \
    libwebp-dev \
    libfreetype6-dev \
    libzip-dev \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    libssl-dev \
    default-libmysqlclient-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
    && docker-php-ext-install \
        bcmath \
        curl \
        exif \
        gd \
        intl \
        mbstring \
        opcache \
        pcntl \
        pdo \
        pdo_mysql \
        soap \
        sockets \
        xml \
        zip \
    && a2enmod rewrite \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

WORKDIR ${APP_DIR}
COPY . ${APP_DIR}

RUN composer install --no-dev --optimize-autoloader --no-interaction --no-progress --prefer-dist

RUN chown -R www-data:www-data ${APP_DIR}/storage ${APP_DIR}/bootstrap/cache

COPY .docker/apache.conf /etc/apache2/sites-available/000-default.conf
COPY .docker/entrypoint.sh /entrypoint.sh
COPY .docker/switch-demo.sh /usr/local/bin/switch-demo
RUN chmod +x /entrypoint.sh /usr/local/bin/switch-demo

EXPOSE 80

ENTRYPOINT ["/entrypoint.sh"]
