Guía de Docker para CreaRack Pro (Django)
Última actualización: 22-01-2026 Estado: Producción Local (Docker Compose Completo)
Arquitectura del Entorno
CreaRack Pro Django utiliza Docker Compose completo para el desarrollo local:
┌─────────────────────────────────────────────────────────────┐
│ Docker Compose │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ crearack │ │ crearack │ │ crearack │ │
│ │ _web │ │ _db │ │ _cache │ │
│ │ (Django) │ │ (PostgreSQL)│ │ (Valkey) │ │
│ │ :8000 │ │ :5432 │ │ :6379 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
Servicios
| Servicio | Imagen | Puerto | Volumen |
|---|---|---|---|
| web | crearack_pro_app_django-web (custom) | 8000 | .:/app (bind mount) |
| db | postgres:18-alpine | 5432 | pg_data (named volume) |
| cache | valkey/valkey:7.2 | 6379 | valkey_data (named volume) |
Comandos Esenciales
Arranque y Parada
# Iniciar todos los servicios (en background)
cd CreaRack_Pro_app_Django
docker compose up -d
# Ver estado de los servicios
docker compose ps
# Parar todos los servicios
docker compose down
# Parar y ELIMINAR volúmenes (⚠️ BORRA DATOS)
docker compose down -v
Desarrollo Diario
# Ver logs en tiempo real
docker compose logs -f web
# Reiniciar el servicio web (tras cambios en código Python)
docker compose restart web
# Ejecutar comandos dentro del contenedor
docker compose exec web python manage.py shell
docker compose exec web python manage.py migrate
docker compose exec web python manage.py createsuperuser
Rebuild (cuando los cambios no se reflejan)
# Rebuild completo (sin cache)
docker compose down
docker compose build --no-cache web
docker compose up -d
Consideraciones para Windows
Problema: OneDrive y Bind Mounts
El proyecto usa bind mounts (.:/app) para sincronizar el código local con el contenedor.
En Windows, especialmente con OneDrive habilitado, pueden surgir problemas de sincronización:
Síntomas:
- Los cambios en archivos locales no se reflejan en el contenedor
- El contenedor muestra código antiguo aunque el archivo local esté actualizado
- El comando
Select-Stringogrepdentro del contenedor muestra contenido diferente
Solución A: Rebuild
docker compose down
docker compose build --no-cache web
docker compose up -d
Solución B: Verificar archivos directamente
# Verificar contenido dentro del contenedor
docker compose exec web cat templates/index.html | grep "rack-location"
# Comparar con archivo local
Get-Content "templates\index.html" | Select-String "rack-location"
Solución C: Desactivar OneDrive para el directorio del proyecto
- Mover el proyecto fuera de OneDrive
- O marcar la carpeta como “Always keep on this device”
Credenciales de Desarrollo
| Recurso | Usuario | Contraseña |
|---|---|---|
| Django Admin | admin | admin123 |
| PostgreSQL | crearack_user | dev_password_123 |
| Database | crearack_pro | - |
URLs de Desarrollo
| Servicio | URL |
|---|---|
| Aplicación Principal | http://localhost:8000 |
| Panel Admin Django | http://localhost:8000/admin |
| Documentación API (Ninja) | http://localhost:8000/api/docs |
| PostgreSQL | localhost:5432 |
| Valkey/Redis | localhost:6379 |
Troubleshooting
El servicio web no inicia
# Ver logs del servicio
docker compose logs web
# Causas comunes:
# - Base de datos no lista (esperar healthcheck)
# - Error de sintaxis en código Python
# - Puerto 8000 ocupado
Los cambios no se reflejan
- Verificar que el archivo local está guardado
- Reiniciar el servicio web:
docker compose restart web - Si persiste, rebuild completo:
docker compose down && docker compose build --no-cache web && docker compose up -d
Error 403 CSRF
- Verificar que las cookies de sesión están configuradas en
config/settings/base.py - El frontend debe incluir el token CSRF en las peticiones POST
Migraciones pendientes
docker compose exec web python manage.py migrate
Historial de Cambios en Arquitectura
| Fecha | Cambio |
|---|---|
| 22-01-2026 | Migración de modo híbrido a Docker Compose completo |
| 21-01-2026 | Modo híbrido (Django local + DB/Cache en Docker) |
| 19-01-2026 | Configuración inicial Docker Compose |
Autor: Antigravity (Google DeepMind)
Documentación relacionada: GEMINI.md, CLAUDE.md, compose.yml
Véase también
- [[crearack-tech—guides—production-deployment]] — deploy en producción Hetzner
- [[crearack-tech—guides—deploy-checklist]] — checklist de deploy Golden Path
- [[crearack-tech—admin—dokploy-guide]] — guía de Dokploy
- [[crearack-tech—admin—dokploy-internals]] — internals de Dokploy
- [[crearack-tech—guides—asgi-server-configuration]] — configuración de Daphne ASGI
- [[crearack-tech—guides—testing-local-guide]] — testing en entorno local