feat(tmux-host): Dockerfile con WORKDIR fijo + healthcheck cada 30 min

Reemplaza el docker run inline (alpine sh -c "apk add ...") por una
imagen construida desde scripts/tmux-host/Dockerfile, con WORKDIR en la
raiz del lab para que docker exec y lab-session.sh ya arranquen
posicionados ahi sin cd manual.

Agrega scripts/tmux-host/healthcheck.sh (via entrypoint.sh, background
del propio contenedor): cada 30 min chequea conectividad real
(curl a gitea.cruzcloud.net) y la existencia de la sesion tmux "lab".
La red solo se loguea+notifica por Telegram (nunca se intenta corregir
desde el contenedor); la sesion tmux si se recrea sola si falta. Log
persistente en /DATA/AppData/k3d-lab-v3/tmux-host/logs/health.log.
Reusa el bot/chat_id de Telegram ya configurado en scripts/lab-agent/.

Validado en un contenedor descartable (tmux-host-test, intervalo de 60s):
confirmado WORKDIR correcto via docker exec, creacion inicial de la
sesion y recreacion automatica tras un kill-session manual.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012xyPak6HWFmBCqXrvFsejL
This commit is contained in:
devopsandClaude Sonnet 5 committed 2026-09-06 17:16:41 +00:00
1 parent 40cb058fd4
commit 78b97bdd59
4 files changed
+132 -1

No files matched your search

+6 -1
View File
@@ -10,6 +10,11 @@ set -Eeuo pipefail
CONTAINER="tmux-host"
SESSION="lab"
# Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/).
# Mismo path que el WORKDIR de scripts/tmux-host/Dockerfile -- pasado
# explicito acá (-c) para no depender de que docker exec herede el WORKDIR
# de la imagen.
WORKDIR="/DATA/AppData/k3d-lab-v3/lab-cruzcloud"
if ! docker ps --format '{{.Names}}' | grep -qx "$CONTAINER"; then
echo "El contenedor '$CONTAINER' no esta corriendo. Verifica con 'docker ps -a'." >&2
@@ -17,4 +22,4 @@ if ! docker ps --format '{{.Names}}' | grep -qx "$CONTAINER"; then
fi
docker exec -it "$CONTAINER" tmux attach -t "$SESSION" || \
docker exec -it "$CONTAINER" tmux new -s "$SESSION"
docker exec -it "$CONTAINER" tmux new -s "$SESSION" -c "$WORKDIR"