Saltar al contenido
Docker y contenedores

Vuestras imágenes de Docker pesan más de lo que deberían. Casi seguro

Ismael Catalá Gil60

Una imagen de una app Laravel puede pesar 1,2 GB o 180 MB. El código es el mismo.

Las tres cosas que más bajan el peso, por orden:

1. Construcción en varias etapas. Compila en una imagen con todas las herramientas y copia solo el resultado a una limpia:

FROM composer:2 AS vendor
COPY composer.* ./
RUN composer install --no-dev --optimize-autoloader
 
FROM php:8.3-fpm-alpine
COPY --from=vendor /app/vendor ./vendor
COPY . .

2. Alpine cuando puedas. Ojo con las extensiones de PHP que necesitan compilarse, ahí a veces no compensa.

3. Un .dockerignore de verdad. node_modules, .git, tests, storage/logs. Es lo más fácil de todo y lo que más gente se salta.

¿Cuánto pesa vuestra imagen de producción? Contad también el stack, que no es lo mismo PHP que Go.

Todavía sin respuestas. Sé el primero.