CreaRack-SL

Guía de Docker para CreaRack Pro (Django)

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

ServicioImagenPuertoVolumen
webcrearack_pro_app_django-web (custom)8000.:/app (bind mount)
dbpostgres:18-alpine5432pg_data (named volume)
cachevalkey/valkey:7.26379valkey_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-String o grep dentro 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

  1. Mover el proyecto fuera de OneDrive
  2. O marcar la carpeta como “Always keep on this device”

Credenciales de Desarrollo

RecursoUsuarioContraseña
Django Adminadminadmin123
PostgreSQLcrearack_userdev_password_123
Databasecrearack_pro-

URLs de Desarrollo

ServicioURL
Aplicación Principalhttp://localhost:8000
Panel Admin Djangohttp://localhost:8000/admin
Documentación API (Ninja)http://localhost:8000/api/docs
PostgreSQLlocalhost:5432
Valkey/Redislocalhost: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

  1. Verificar que el archivo local está guardado
  2. Reiniciar el servicio web: docker compose restart web
  3. 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

FechaCambio
22-01-2026Migración de modo híbrido a Docker Compose completo
21-01-2026Modo híbrido (Django local + DB/Cache en Docker)
19-01-2026Configuració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