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

190 lines
4.6 KiB
Markdown

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