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
24 lines
1.1 KiB
Docker
24 lines
1.1 KiB
Docker
# Imagen de tmux-host: sesion tmux persistente para Claude Code sobre el
|
|
# lab GitOps de cruzcloud. Reemplaza el `docker run ... alpine sh -c "apk
|
|
# add ... && npm install ..."` inline documentado antes en
|
|
# docs/arquitectura/sesion-tmux-persistente.md — mismo contenido, pero
|
|
# construido una vez como imagen en vez de reinstalar todo en cada arranque
|
|
# del contenedor.
|
|
FROM alpine:3.24
|
|
|
|
RUN apk add --no-cache tmux docker-cli bash curl git kubectl nodejs npm \
|
|
&& npm install -g @anthropic-ai/claude-code \
|
|
&& git config --global --add safe.directory '*'
|
|
|
|
# Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/).
|
|
# docker exec hereda este WORKDIR como cwd por defecto, y ademas
|
|
# lab-session.sh y healthcheck.sh lo pasan explicito via `tmux ... -c`
|
|
# para no depender de ese comportamiento implicito.
|
|
WORKDIR /DATA/AppData/k3d-lab-v3/lab-cruzcloud
|
|
|
|
COPY healthcheck.sh /usr/local/bin/healthcheck.sh
|
|
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/healthcheck.sh /usr/local/bin/entrypoint.sh
|
|
|
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|