# Stage 1: Build Frontend Assets (Vite) FROM node:20-alpine AS assets-builder WORKDIR /app COPY package.json package-lock.json* ./ RUN npm install COPY . . RUN npm run build # Stage 2: Final Application Image FROM php:8.3-cli RUN apt-get update \ && apt-get install -y --no-install-recommends git unzip libzip-dev \ && docker-php-ext-install pdo_mysql zip \ && rm -rf /var/lib/apt/lists/* COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /app COPY . . # Copy built assets from assets-builder COPY --from=assets-builder /app/public/build ./public/build RUN composer install --no-interaction --no-progress --optimize-autoloader \ && chmod +x docker/entrypoint.sh EXPOSE 8000 ENTRYPOINT ["docker/entrypoint.sh"] CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]