Guia Docker¶
Objetivo¶
Este documento describe como ejecutar SEO Growth Engine con Docker y cual es el estado real de esa configuracion dentro del proyecto.
Archivos implicados¶
Dockerfile.dockerignore.gitattributesdocker-compose.ymldeploy/entrypoint.sh
Que hace el Dockerfile¶
- Construye el frontend con
Node 20ynpm ci. - Genera el build de
Vueconnpm run build. - Regenera el CSS publico con
npm run build:tailwind. - Crea una imagen final basada en
Python 3.12. - Instala dependencias del backend.
- Copia el proyecto y los assets compilados.
- Normaliza
deploy/entrypoint.sha formatoLFdentro de la imagen antes de marcarlo como ejecutable.
Que hace docker-compose¶
El archivo docker-compose.yml define estos servicios:
web: aplica migraciones, ejecutacollectstaticy levantaGunicornworker: ejecutapython manage.py runworkerdb:PostgreSQLredis:Redis
Tambien define volumenes para:
- salida de artefactos
- estaticos
- datos de Postgres
- secretos locales montados en
/app/secretscomo solo lectura
Nota importante:
- Dentro de Docker,
webyworkerfuerzanDJANGO_TASK_QUEUE_BACKEND=rqyREDIS_URL=redis://redis:6379/0. - Esto evita que un
.envlocal conDJANGO_TASK_QUEUE_BACKEND=threadrompa el worker del stack Docker. - Los secretos de Google deben vivir fuera del repositorio en
secrets/; esa carpeta queda ignorada por Git y no se copia dentro de la imagen.
Arranque local con Docker¶
Antes de levantar el stack, copia el ejemplo de variables:
Luego ejecuta:
Si tu maquina usa la variante antigua:
En otra terminal, crea el usuario interno inicial:
docker compose exec web python manage.py bootstrap_dashboard --username tutor --password tutor123 --email tutor@example.com
Si se quiere dejar Going International conectado a GSC y GA4 desde el arranque, copia antes el JSON privado a secrets/gsc-service-account.json y usa:
docker compose exec web python manage.py bootstrap_dashboard \
--username tutor \
--password tutor123 \
--email tutor@example.com \
--service-account-json /app/secrets/gsc-service-account.json \
--gsc-property sc-domain:going.international \
--ga4-property-id 417418090
Despues puedes abrir:
Validacion local realizada¶
Validado localmente el 2026-05-18 con estos resultados:
docker-compose up --build -d: correctodocker-compose ps:web,worker,dbyredisen estadoUpdocker-compose logs --tail=60 web worker:GunicornyRQ workerarrancando sin erroreshttp://127.0.0.1:8000/: respuesta200
Relacion con el despliegue final¶
Docker resuelve la parte de entorno reproducible en desarrollo y facilita la puesta en marcha del sistema completo. La arquitectura de publicacion que presentamos en produccion contempla NGINX en la VPS como proxy delante de la aplicacion.
Incidencias de Docker ya corregidas¶
deploy/entrypoint.shfallaba en Windows por finales de lineaCRLF- el
workerheredabaDJANGO_TASK_QUEUE_BACKEND=threaddesde.env
Ambos puntos ya quedaron corregidos en el repositorio.
Siguiente nivel de mejora¶
- reforzar automatizacion del despliegue;
- cerrar ajuste final de dominio y HTTPS segun el entorno real;
- mantener alineadas la documentacion local y la publicacion en
VPS.