FROM composer:2.7 AS composer WORKDIR /app COPY aigo/ . RUN composer install --no-dev --optimize-autoloader --no-interaction FROM node:20-slim AS npm ARG VITE_REVERB_APP_KEY ARG VITE_REVERB_HOST ARG VITE_REVERB_PORT ARG VITE_REVERB_SCHEME ENV VITE_REVERB_APP_KEY=$VITE_REVERB_APP_KEY ENV VITE_REVERB_HOST=$VITE_REVERB_HOST ENV VITE_REVERB_PORT=$VITE_REVERB_PORT ENV VITE_REVERB_SCHEME=$VITE_REVERB_SCHEME WORKDIR /app COPY aigo/ . RUN npm ci && npm run build FROM php:8.2-apache AS runtime RUN apt-get update && apt-get install -y --no-install-recommends \ libpq-dev libzip-dev libicu-dev libgd-dev libcurl4-openssl-dev unzip \ && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-install pdo_mysql mbstring bcmath xml curl gd zip intl RUN pecl install redis && docker-php-ext-enable redis RUN a2enmod rewrite COPY --from=composer /app/vendor /var/www/aigo/vendor COPY --from=npm /app /var/www/aigo RUN mkdir -p /var/www/aigo/storage/framework/{cache/sessions,cache/data,views,testing} \ /var/www/aigo/storage/logs \ /var/www/aigo/bootstrap/cache COPY docker/apache/000-default.conf /etc/apache2/sites-available/000-default.conf COPY docker-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["docker-entrypoint.sh"] CMD ["apache2-foreground"]