fix(gitea-runner): limites de recursos reales para el runner

El contenedor gitea-runner se creaba sin ningun limite de CPU/memoria
(docker run plano), compitiendo directamente con gitea (que ademas
tenia cpu-shares=90, muy por debajo del default de Docker de 1024).

Causa raiz confirmada en vivo el 2026-08-15: durante un build pesado
de commerce-backend, tanto gitea como gitea-runner se reiniciaron
solos (ExitCode=0, RestartCount=0 en ambos -- restart limpio disparado
externamente, no un crash) coincidiendo con 502 Bad Gateway del runner
y memoria del host casi agotada. Mismo patron ya visto y documentado
en incidentes anteriores (2026-07-30, 2026-08-11).

Se agrega --cpu-shares 512 (menos prioridad relativa que gitea) y
--memory 8g / --memory-swap 10g al runner. El fix de cpu-shares de
gitea (90 -> 1024) va en docker-compose.yml, fuera de este repo -- no
tengo acceso de escritura root a ese archivo, queda para aplicar
manualmente.

Este cambio solo afecta a la proxima creacion del contenedor
(create_gitea_runner_container es idempotente); no se aplica solo al
contenedor que ya esta corriendo.
This commit is contained in:
devops committed 2026-08-15 15:02:01 -05:00
1 parent b11cb0384c
commit 208d307e5a
1 file changed
+11
+11
View File
@@ -3062,9 +3062,20 @@ create_gitea_runner_container() {
log "Creando contenedor ${GITEA_RUNNER_CONTAINER}" log "Creando contenedor ${GITEA_RUNNER_CONTAINER}"
# cpu-shares/memory: sin esto el runner corria sin ningun limite,
# compitiendo por CPU/memoria con el propio contenedor de Gitea
# (que ademas tenia cpu-shares=90, muy por debajo del default de
# Docker) -- causa raiz confirmada en vivo de reinicios de ambos
# contenedores durante builds pesados (ver docs/playbooks). El
# runner queda con menos prioridad relativa que Gitea (512 vs 1024)
# y con un techo de memoria real para no arrastrar al host entero a
# swap con un solo job.
docker run -d \ docker run -d \
--name "$GITEA_RUNNER_CONTAINER" \ --name "$GITEA_RUNNER_CONTAINER" \
--restart unless-stopped \ --restart unless-stopped \
--cpu-shares 512 \
--memory 8g \
--memory-swap 10g \
-v "${GITEA_RUNNER_DATA_DIR}:/data" \ -v "${GITEA_RUNNER_DATA_DIR}:/data" \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-e "GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}" \ -e "GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL}" \