41 lines
1.2 KiB
Docker
41 lines
1.2 KiB
Docker
# ======================
|
|
# Etapa 1: Compilacion
|
|
# ======================
|
|
FROM php:8.1-cli AS builder
|
|
|
|
# Instalar herramientas
|
|
RUN apt-get update && apt-get install -y \
|
|
git curl unzip zip nodejs npm libzip-dev libpng-dev libjpeg-dev \
|
|
libfreetype6-dev libonig-dev libxml2-dev
|
|
|
|
RUN docker-php-ext-install pdo pdo_mysql mbstring zip gd mysqli
|
|
|
|
# Instalar Composer
|
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
|
|
|
# Copiar el codigo fuente
|
|
WORKDIR /app
|
|
COPY . .
|
|
|
|
# Instalar dependencias PHP y JS + compilar
|
|
RUN composer install --no-dev --optimize-autoloader
|
|
RUN npm install && npm run build
|
|
|
|
# ======================
|
|
# Etapa 2: Imagen final
|
|
# ======================
|
|
FROM php:8.1-apache
|
|
|
|
RUN apt-get update && apt-get install -y libzip-dev libpng-dev libjpeg-dev \
|
|
libfreetype6-dev libonig-dev libxml2-dev && \
|
|
docker-php-ext-install pdo pdo_mysql mbstring zip gd mysqli && \
|
|
a2enmod rewrite
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
# Copiar solo los archivos ya listos desde la etapa anterior
|
|
COPY --from=builder /app /var/www/html
|
|
|
|
# Permisos adecuados
|
|
RUN chown -R www-data:www-data /var/www/html && chmod -R 755 /var/www/html
|