Arquitectura

La imagen se construye en 2 etapas:

  1. Una etapa con composer:2 que corre composer install (sin dev-dependencies) para generar vendor/.
  2. La etapa final, sobre php:8.5-cli (sin FrankenPHP: esta imagen no sirve nada por HTTP), que instala las extensiones de PHP que hacen falta y copia el código junto al vendor/ generado en la etapa anterior.

El proceso principal del contenedor (tail -f /dev/null) no ejecuta nada por sí mismo — solo mantiene el contenedor vivo para que docker exec (o un docker run que sobreescriba ese CMD) pueda invocar bin/console.

Extensiones de PHP

libredte/libredte-lib-core y sus dependencias (derafu/certificate, derafu/signature, mpdf/mpdf, tecnickcom/tc-lib-barcode, etc.) solo necesitan gd/intl/soap además de lo que php:8.5-cli ya trae compilado (curl/mbstring/openssl/xml/entre otras). La imagen igual instala el mismo set más amplio que usa docker-php8.5-caddy-server (la imagen de referencia con la que se desarrollan/prueban estas mismas librerías): bcmath, exif, gd, intl, pdo_mysql, pdo_pgsql, soap, sockets, zip — como margen de seguridad ante una futura dependencia, sin arrastrar nada de lo específico a esa imagen (Caddy, SSH, Supervisor, Node, Python, Redis, Xdebug), que no aplica acá.

Desarrollo sin Docker

Para modificar el código sin construir la imagen:

git clone [email protected]:LibreDTE/libredte-lib-core-console.git
cd libredte-lib-core-console
composer install
bin/console list
On this page

Last updated on 27/08/2026 by Anonymous