Un entorno de desarrollo automatizado y contenedorizado para aplicaciones Angular usando Docker y Docker Compose. Este proyecto está diseñado para facilitar la creación, ejecución y desarrollo de proyectos Angular con soporte integrado para Traefik (proxy inverso) y recarga en caliente (hot-reload).
- Generación Automática: Crea automáticamente un nuevo proyecto Angular si no existe en el directorio montado.
- Versiones Flexibles: Configura fácilmente la versión de Node.js y Angular CLI a través del archivo
.env. - Integración con Traefik: Configurado por defecto para usar Traefik como proxy inverso y gestionar dominios locales (ej:
app.local) con HTTPS. - Hot Reloading: Soporte completo para recarga en caliente (
ng serve --poll 2000) dentro del contenedor de Docker.
- Docker
- Docker Compose
- (Opcional pero recomendado) Una instancia de Traefik corriendo en la red de Docker llamada
proxy.
git clone https://github.com/tu-usuario/dockerAngular.git
cd dockerAngularCopia el archivo de ejemplo y ajusta las variables según tus necesidades:
cp .env.sample .envExplicación de las variables en .env:
NODE_VERSION: Versión de Node.js base para el contenedor.ANGULAR_VERSION: Versión global de Angular CLI que se instalará.TYPES_NODE_VERSION: Versión de@types/nodea instalar en el proyecto.PROJECT_NAME: Nombre de tu proyecto Angular (la carpeta se creará dentro del directorioproyecto/).PROJECT_PORT: Puerto expuesto para acceder sin Traefik (ej.4200).CREATE_PROJECT: (true/false) Indica si debe crear el proyecto de Angular automáticamente al iniciar si no existe.FORCE_NPM_INSTALL: (true/false) Fuerza la ejecución denpm installcada vez que se levanta el contenedor.SERVE_OPTIONS: Opciones adicionales parang serve(por defecto:--disable-host-check).
Copia el archivo base de docker-compose.yml:
cp docker-compose.yml.sample docker-compose.ymlNota sobre Traefik: El archivo
docker-compose.yml.sampleviene con etiquetas para Traefik preconfiguradas (app.local). Si no utilizas Traefik, puedes eliminar o comentar las líneas dentro delabels:y la red externaproxy.
Para levantar el entorno, ejecuta:
docker compose up -d --build- Se construye la imagen de Docker instalando la versión de Angular CLI indicada.
- Al iniciar el contenedor (
entrypoint.sh), si la carpeta de tu proyecto (dentro de./proyecto/) no tiene unpackage.json, ejecutaráng newcon las configuraciones por defecto para inicializar la aplicación. - Se instalan las dependencias.
- Se ejecuta el servidor de desarrollo (
ng serve) escuchando cambios.
Accede a tu aplicación en:
- A través de Traefik:
https://app.local(o el host que hayas definido). - Acceso directo:
http://localhost:4200(o el puerto configurado enPROJECT_PORT).
dockerfile: Define la imagen base de Node y la instalación de Angular CLI.docker-compose.yml.sample: Archivo de orquestación de servicios para Docker.entrypoint.sh: Script de inicio que valida la existencia del proyecto, instala dependencias y arranca el servidor..env.sample: Plantilla para las variables de entorno.proyecto/: Directorio donde se montará el código fuente de tu aplicación Angular.
Este proyecto es de código abierto y está disponible bajo la licencia GNU GPLv3. Esta licencia es "copyleft", lo que asegura que cualquier modificación o distribución de este proyecto también deba ser obligatoriamente de código abierto.