4.6 KiB
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
orequirements-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:
- Crear archivo requirements (ej:
requirements-datascience.txt
) - Modificar Dockerfile agregando nuevo entorno conda
- Ejecutar rebuild:
sudo ./docker-manage.sh rebuild
- 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 trabajorebuild_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!