32 lines
743 B
Docker
32 lines
743 B
Docker
# ---- Stage 1: Build frontend (Vite/React) ----
|
|
FROM node:20-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
# Install dependencies first (better layer caching)
|
|
COPY package*.json ./
|
|
RUN npm install
|
|
|
|
# Copy the rest of the source and build
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
# ---- Stage 2: PHP + Apache to serve built files + api.php ----
|
|
FROM php:8.2-apache
|
|
|
|
# Enable Apache mod_rewrite (useful for SPA routing)
|
|
RUN a2enmod rewrite
|
|
|
|
# Install MySQL PDO extension
|
|
RUN docker-php-ext-install pdo pdo_mysql
|
|
|
|
# Copy built frontend assets from Stage 1
|
|
COPY --from=build /app/dist/ /var/www/html/
|
|
|
|
# Copy api.php (and any other PHP backend files) into web root
|
|
COPY api.php /var/www/html/api.php
|
|
|
|
# Set permissions
|
|
RUN chown -R www-data:www-data /var/www/html
|
|
|
|
EXPOSE 80 |