This commit is contained in:
40
Dockerfile
Normal file
40
Dockerfile
Normal file
@ -0,0 +1,40 @@
|
||||
# ======================
|
||||
# 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
|
Reference in New Issue
Block a user