190 lines
4.6 KiB
Markdown
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!** |