# 📋 Resumen: Flujo de Trabajo Docker para SIDEL ScriptsManager ## 🎯 Respuesta a tu Pregunta **"¿Cada vez que hago un cambio en los scripts qué debo hacer para regenerar la imagen y el contenedor?"** ### Respuesta Rápida: ```bash # 🔄 Para cambios SIMPLES en scripts (90% de casos): sudo ./docker-manage.sh restart # 🏗️ Para cambios en DEPENDENCIAS o NUEVOS ENTORNOS: sudo ./docker-manage.sh rebuild ``` --- ## 📋 Clasificación de Cambios ### ✅ CAMBIOS SIMPLES (Solo Restart) - Modificar scripts Python en `app/backend/script_groups/` - Cambiar configuraciones en `app/config/` - Actualizar templates HTML en `app/templates/` - Modificar archivos CSS/JS en `app/static/` - Ajustar configuraciones de la aplicación **Comando**: `sudo ./docker-manage.sh restart` ### 🏗️ CAMBIOS COMPLEJOS (Requieren Rebuild) - Modificar `requirements.txt` o `requirements-dev.txt` - Agregar nuevo entorno conda - Cambiar `Dockerfile` - Actualizar dependencias de TSNet - Modificar estructura de directorios del contenedor **Comando**: `sudo ./docker-manage.sh rebuild` --- ## 🛠️ Comandos Principales Creados ### Comandos Nuevos Agregados: ```bash # Mostrar flujo de trabajo sudo ./docker-manage.sh workflow # Rebuild automático (stop + build + start) sudo ./docker-manage.sh rebuild # Listar entornos conda sudo ./docker-manage.sh envs # Ver ayuda completa sudo ./docker-manage.sh help ``` ### Comandos de Verificación: ```bash # Verificar todos los entornos sudo ./verify-environments.sh # Ver estado del sistema sudo ./docker-manage.sh status # Ver logs en tiempo real sudo ./docker-manage.sh logs # Acceder al contenedor sudo ./docker-manage.sh shell ``` --- ## 🐍 Agregar Nuevo Entorno Miniconda ### Proceso Paso a Paso: 1. **Crear archivo requirements** (ej: `requirements-datascience.txt`) 2. **Modificar Dockerfile** agregando nuevo entorno conda 3. **Ejecutar rebuild**: `sudo ./docker-manage.sh rebuild` 4. **Verificar**: `sudo ./verify-environments.sh` ### Ejemplo Práctico: ```bash # 1. Crear requirements cat > requirements-datascience.txt << EOF pandas>=2.0.0 numpy>=1.24.0 matplotlib>=3.7.0 jupyter>=1.0.0 EOF # 2. Agregar al Dockerfile: # RUN conda create -n datascience python=3.12 -y # COPY requirements-datascience.txt ./ # RUN /opt/conda/envs/datascience/bin/pip install -r requirements-datascience.txt # 3. Rebuild sudo ./docker-manage.sh rebuild # 4. Verificar sudo ./docker-manage.sh envs ``` --- ## 📁 Archivos Creados ### ✅ DockerBuild.md - **Ubicación**: `/home/miguefin/scriptmanager/DockerBuild.md` - **Contenido**: Guía completa con ejemplos prácticos - **Secciones**: Flujo de trabajo, nuevos entornos, troubleshooting, scripts de automatización ### ✅ docker-manage.sh (Actualizado) - **Nuevos comandos**: `rebuild`, `workflow`, `envs` mejorado - **Funciones agregadas**: - `show_rebuild_workflow()`: Muestra flujo de trabajo - `rebuild_quick()`: Rebuild automático - **Ayuda actualizada**: Incluye nuevos comandos ### ✅ Verificaciones Funcionando - **verify-environments.sh**: Verifica todos los entornos - **Sistema actual**: 2 entornos (scriptsmanager + tsnet) - **Frontend**: Funcionando en puerto 5002 --- ## 🎯 Casos de Uso Frecuentes ### 📝 Desarrollo Diario: ```bash # Modificas script Python → Solo restart sudo ./docker-manage.sh restart ``` ### 🔧 Agregar Librería Nueva: ```bash # Modificas requirements.txt → Rebuild sudo ./docker-manage.sh rebuild ``` ### 🐍 Nuevo Entorno Conda: ```bash # Modificas Dockerfile + requirements → Rebuild sudo ./docker-manage.sh rebuild ``` ### 🔍 Debugging: ```bash # Verificar estado sudo ./docker-manage.sh status sudo ./docker-manage.sh envs sudo ./verify-environments.sh # Acceder al contenedor sudo ./docker-manage.sh shell conda env list ``` --- ## ⚡ Quick Reference | Acción | Comando | |--------|---------| | Ver flujo de trabajo | `sudo ./docker-manage.sh workflow` | | Restart simple | `sudo ./docker-manage.sh restart` | | Rebuild completo | `sudo ./docker-manage.sh rebuild` | | Ver entornos | `sudo ./docker-manage.sh envs` | | Verificar sistema | `sudo ./verify-environments.sh` | | Debug en contenedor | `sudo ./docker-manage.sh shell` | | Ver logs | `sudo ./docker-manage.sh logs` | | Ver ayuda | `sudo ./docker-manage.sh help` | --- ## 🏁 Estado Actual del Sistema ✅ **Frontend**: http://localhost:5002 (funcionando) ✅ **Entorno scriptsmanager**: Python 3.12 + Flask 3.1.2 ✅ **Entorno tsnet**: Python 3.12 + TSNet 0.2.2 ✅ **Red**: Host mode para puertos dinámicos (5200-5400) ✅ **Gestión**: Scripts automatizados completos ✅ **Documentación**: DockerBuild.md completo **🎉 Sistema completamente funcional y documentado!**