SIDEL_ScriptsManager/.doc/DOCKER-WORKFLOW-SUMMARY.md

4.6 KiB

📋 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:

# 🔄 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:

# 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:

# 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:

# 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:

# Modificas script Python → Solo restart
sudo ./docker-manage.sh restart

🔧 Agregar Librería Nueva:

# Modificas requirements.txt → Rebuild
sudo ./docker-manage.sh rebuild

🐍 Nuevo Entorno Conda:

# Modificas Dockerfile + requirements → Rebuild
sudo ./docker-manage.sh rebuild

🔍 Debugging:

# 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!